Python 自定义类
程序员文章站
2024-03-18 11:38:28
...
Python定义类
car.py
#!/usr/local/bin/python3
"""Class Car and Class ElectricCar"""
class Car():
"""class Car includes 'Maker', 'Model', 'Year' and ‘Color’"""
def __init__(self, Maker, Model, Year):
self.Maker = Maker
self.Model = Model
self.Year = Year
def SetColor(self, Color):
self.Color = Color
def GetLongName(self):
return self.Maker + ' ' + self.Model + ' ' + str(self.Year)
def GetInfo(self):
return self.Maker, self.Model, self.Year, self.Color
class ElectricCar(Car):
"""class ElectricCar is based on class Car, with a new attribute 'Battery'"""
def __init__(self, Maker = 'Tesla', Model = 'Model 3', Year = 2020):
super().__init__(Maker, Model, Year)
self.SetBattery()
def SetBattery(self, Battery = 54.5):
self.Battery = Battery
self.SetRange()
return self.Battery
@property
def GetRange(self):
self.Range = int(self.Battery * 625 / 100)
return self.Range
if __name__ == '__main__':
# execute only if run as a script
def main():
mycar = Car('Audi', 'A6L', '2018')
print()
print(mycar.GetLongName())
mycar.SetColor('Black')
print(f'The color is %s.' % mycar.Color)
print(mycar.__doc__)
ecar = ElectricCar()
ecar.SetBattery()
print()
print(ecar.GetLongName())
print(f'The color is %s.' % mycar.Color)
print(f'The battery is %.1f kwh. The range is %d km.' % (ecar.Battery, ecar.Range))
# print(__file__)
# print(ecar.__class__)
# print(ecar.__module__)
# print(__name__)
# print(ecar.__doc__)
# print(__doc__)
main()
输出结果:
Audi A6L 2018
The color is Black.
class Car includes 'Maker', 'Model', 'Year' and ‘Color’
Tesla Model 3 2020
The color is Black.
The battery is 54.5 kwh. The range is 340 km.
car2.py
from car import Car, ElectricCar
if __name__ == "__main__":
def main():
mycar = Car('Audi', 'A8L', '2020')
mycar.SetColor('White')
print(mycar.GetInfo())
# ecar = ElectricCar('Tesla', 'Model S', 2016)
ecar = ElectricCar()
ecar.SetColor('Red')
ecar.SetBattery(100)
print(ecar.GetLongName())
print(ecar.GetInfo())
print(ecar.Battery)
print(ecar.Range)
main()
输出结果:
('Audi', 'A8L', '2020', 'White')
Tesla Model 3 2020
('Tesla', 'Model 3', 2020, 'Red')
100
625
上一篇: JAVA数据结构学习1.2队列的数组实现
下一篇: 科学计算工具学习笔记 四