print python 带回车_跟我一起自学python 第9章 类(9.4.3 从一个模块中导入多个类)...

大家好今天学习9.4.3 从一个模块中导入多个类 。由于我还有别的工作所以有时候会忙的断更,不过我还是要继续做完。

喜欢python就关注冠山巡山使。 我将跟大家一块自学完python语言。

85a6b54621b2d856740f2ad46be308ff.png

9.4.3 从一个模块中导入多个类

下面代码1是上节的car模块代码,看过的可以跳过代码1
car.py

代码1(模块代码)

"""一组用于表示燃油汽车和电动汽车的类"""class Car():"""一次模拟汽车的简单尝试"""def __init__(self, make, model, year):"""我们定义了方法__init__()里面有四个形参""""""初始化描述汽车的属性"""self.make= make """定义变量品牌"""self.model= model"""定义变量型号"""self.year= year"""定义变量生产日期"""self.odometer_reading=0"""添加一个名为odometer_reading的变量属性值为0"""def get_descriptive_name(self):"""定义get这个方法""""""返回整洁的描述性信息"""long_name= str(self.year)+ ' ' + self.make + ' ' +self.modelreturn long_name.title()def read_odometer(self):"""添加read_odometer方法""""""打印一条指出汽车里程的消息"""print("这个车辆有"+ str(self.odometer_reading) +"公里")def update_odometer(self,mileage):"""将里程表读数设置为指定的值""""""将里程表读数设置为指定的值禁止将里程表读数往回调"""if mileage>=self.odometer_reading:"""如果行驶里程数>=里程表读数"""self.odometer_reading=mileage"""行驶里程数就可以赋值给里程表"""else:"""如果不是"""print("这个车的里程表"+ str(mileage) +"不能往回调")"""就打印出这个车的里程表不能往回调"""def increment_odoment(self,miles):""""将里程表读数增加指定的量"""self.odometer_reading += milesclass Battery():"""定义一个电瓶的类"""def __init__(self,battery_size=70):"""初始化电瓶的容量"""self.battery_size=battery_sizedef describe_battery(self):print("这个电瓶容量是"+str(self.battery_size)+"千瓦")def get_range(self):"""打印一条消息,指出电瓶的续航里程"""if self.battery_size==70:range=240elif self.battery_size==85:range=270message="这个汽车大概能开"+str(range)message="充满电后的续航里程"print(message)class ElectricCar(Car):"""我们定义了子类ElectricCar,并指定父类的名称Car""""""电动汽车的独特之处初始化父类的属性,再初始化电动汽车特有的属性"""def __init__(self,make,model,year):"""初始化父类属性"""super().__init__(make,model,year)self.battery=Battery()def fill_gas_tank():"""定义一个汽车没有邮箱方法"""print("这两汽车没有邮箱")
988c61dc824e920d4ed519168531ea0f.png

car.py

21e5fd6f5d6f46e1e1e6cfa3394438d3.png

car.py

e4767a563f273294209b5a0e5702d20a.png

car.py

可根据需要在程序文件中导入任意数量的类。如果我们要在同一个程序中创建普通汽车和电
动汽车,就需要将Car和ElectricCar类都导入:
my_cars.py
代码2(测试正常)

"""新代码1"""from car import Car,ElectricCar"""新代码1""""""新代码2"""my_beetle=Car('大众','甲壳虫',2016)print(my_beetle.get_descriptive_name())"""新代码2""""""新代码3"""my_tesla=ElectricCar('特斯拉','ms',2020)print(my_tesla.get_descriptive_name())"""新代码3"""

新代码1处从一个模块中导入多个类时,用逗号分隔了各个类。导入必要的类后,就可根据需要
创建每个类的任意数量的实例。
在这个示例中,我们在新代码2处创建了一辆大众甲壳虫普通汽车,并在新代码3处创建了一辆特斯拉
Roadster电动汽车:

执行后

3e6887c3e7c65b60beeb8b90d28cb249.png
2016 大众 甲壳虫2020 特斯拉 Ms

上面是导入模块中的两个类代码

9.4.4 导入整个模块

你还可以导入整个模块,再使用句点表示法访问需要的类。这种导入方法很简单,代码也易
于阅读。由于创建类实例的代码都包含模块名,因此不会与当前文件使用的任何名称发生冲突。
下面的代码导入整个car模块,并创建一辆普通汽车和一辆电动汽车:

my_cars.py
代码3(测试正常)

"""新代码1"""import car """新代码1""""""新代码2"""my_beetle=car.Car('大众','甲壳虫',2016)print(my_beetle.get_descriptive_name())"""新代码2""""""新代码3"""my_tesla=car.ElectricCar('特斯拉','ms',2020)print(my_tesla.get_descriptive_name())"""新代码3"""
aa6b733a25c915d4c5eb0c7f68e86204.png

在新代码1处,我们导入了整个car模块。接下来,我们使用语法module_name.class_name访问需要
的类。像前面一样,我们在新代码2处创建了一辆大众甲壳虫汽车,并在新代码3处创建了一辆特斯拉Roadster汽车。

9.4.5 导入模块中的所有类

要导入模块中的每个类,可使用下面的语法:

"""新代码1"""from car import * """新代码1""""""新代码2"""my_beetle=Car('大众','甲壳虫',2016)print(my_beetle.get_descriptive_name())"""新代码2""""""新代码3"""my_tesla=ElectricCar('特斯拉','ms',2020)print(my_tesla.get_descriptive_name())"""新代码3"""
57efc8fcd6f988925022e6255a7d654d.png

我们不推荐使用这种导入方式,其原因有二。首先,如果只要看一下文件开头的import语句,就
能清楚地知道程序使用了哪些类,将大有裨益;但这种导入方式没有明确地指出你使用了模块中
的哪些类。这种导入方式还可能引发名称方面的困惑。如果你不小心导入了一个与程序文件中其
他东西同名的类,将引发难以诊断的错误。这里之所以介绍这种导入方式,是因为虽然不推荐使
用这种方式,但你可能会在别人编写的代码中见到它。
需要从一个模块中导入很多类时,最好导入整个模块,并使用module_name.class_name语法
来访问类。这样做时,虽然文件开头并没有列出用到的所有类,但你清楚地知道在程序的哪些地
方使用了导入的模块;你还避免了导入模块中的每个类可能引发的名称冲突。

因为后面代码篇幅比较大。大家看起来也不便。所以自学教程我会分割的比较多些。类还有几小节就学完了。

今天学到这里。明天继续 的学习

如果喜欢可以 点赞+关注冠山巡山使 or 评论+转发此文章让其他喜欢Python的同学看到吆 。明天见!

关注冠山巡山使+私信:“编辑器”三个字 就可以有这个编辑器的下载地址了。关注冠山巡山使+私信:“自学python”可以下载此教程!(我是参考此教程做的自学课程。大多数人儿只是下载下来。看完的很少。希望能跟我一块自学完!)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值