美文网首页
2021-12-12 Python-16

2021-12-12 Python-16

作者: MaggieXie | 来源:发表于2021-12-12 16:27 被阅读0次

    导入类

    为了让文件看起来更整洁,更突出主次,可以将类存储在模块中,然后将模块导入主程序即可。
    假设我们将以下的代码保存为 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

    相关文章

      网友评论

          本文标题:2021-12-12 Python-16

          本文链接:https://www.haomeiwen.com/subject/ksbrfrtx.html