2021-12-12 Python-16

导入类

为了让文件看起来更整洁,更突出主次,可以将类存储在模块中,然后将模块导入主程序即可。
假设我们将以下的代码保存为 car.py 文件

#一个可以用来表示汽车的类
class Car():
    def __init__(self,make,model,year):
        self.make=make
        self.model=model
        self.year=year
        self.odometer_reading=50
    def get_descriptive_name(self):
        long_name=str(self.year)+' '+self.make+' '+self.model
        print(long_name)
    def current_odometer(self,meter):
        if odometer_reading < meter:
            self.odometer_reading=meter
        print('current odometer is ' + str(self.odometer_reading))
    def gasoline_left(self,volume):
        print('there is'+' ' +str(volume)+'L '+'gasoline left.')

再将关于 ElectricCar 类存储为electriccar.py文件

#表示电动汽车类的描述
from car import Car
class Battery():
    #将电池的描述单独抽出来组成一个类
    def __init__(self,battery_size=70):
        self.batter_size=battery_size
    def describe_battery(self):
        print('This Car has a '+str(self.battery_size)+'-kWh battery')

class ElectricCar(Car):
      '''描述电动汽车的特征'''
    def __init__(self,make,model,year):
        #初始化父类的属性
        super().__init__(make,model,year)
        #将Battery类作为ElectricCar的属性
        self.battery_size =Battery()
    def describe_battery(self):
        #定义ElectricCar类中特有的方法,而Car中不存在
        print('this car has a '+str(self.battery_size)+' kWh battery')
    def gasoline_left(self):
    #对该方法进行重新改写
        print('This car doesn't need a tank !')

ele=ElectricCar('tesla','model s',2020)
ele.battery_size.describe_battery()

在electriccar.py文件中,因为 ElectricCar 类需要 Car 作为父类,所以需要从car.py 文件中导入 Car 类
此时需要 electriccar.py 和 car.py 位于同一个文件夹。

在相同的目录下创建一个新的文件 my_car.py

from car import Car
import electriccar
my_beetle=Car('volkswagen','beetle',2019)
my_tesla=electriccar.ElectricCar('tesla','roadster',2020)

导入模块可以通过from import 语句也可以直接 import 整个文件。通过前者方法,可以直接使用类名,而后者需要modulename.classname

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 【早起打卡挑战】第1天,六点46分,明天加油了,争取六点半起。基础部分还有两章结束,接着就是巩固习题然后开始做项目...
    Charles_DT阅读 193评论 0 1
  • 本文以 Eric Matthes 的《Python编程:从入门到实践》为基础,以有一定其他语言经验的程序员视角,对...
    solocoder阅读 734评论 0 8
  • 第九章(三) 4、导入类 Python的总体理念是让文件尽可能整洁,为此,Python允许你将类存储在模块中,然后...
    晓梅_aa3b阅读 469评论 2 0
  • 1.配置等信息 安装省略 查看python安装路径 type -a python输出:python3 is /us...
    YangDxg阅读 456评论 0 1
  • 面向对象编程是最有效的软件编写方法之一。 在面向对象编程中, 你编写表示现实世界中的事物和情景的类,并基于这些类来...
    yushui1995阅读 696评论 0 0