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