У меня есть два класса. Engine - это родительский класс, а Car - дочерний.
Я определил свойство и установщик для свойства в классе Engine.
Я хочу получить значение свойства или изменить его из дочернего класса (Car).
Вот пример, с которым я работаю:
#!/usr/bin/env python3
import sys
class Engine:
def __init__(self):
self.__cylinder = 4
@property
def cylinder(self):
return self.__cylinder
@cylinder.setter
def cylinder(self,cylinder):
self.__cylinder = cylinder
def start(self):
print("Engine started.")
def stop(self):
print("Engine stopped.")
class Car(Engine):
def __init__(self):
self.__wheel = 4
print("How many cylinders? - " + str(Engine.cylinder))
@property
def wheel(self):
return self.__wheel
@wheel.setter
def wheel(self, wheel):
self.__wheel = wheel
def drive(self):
self.start()
print("Car is driving")
def stop(self):
print("Car stopped")
class Tandem(Car):
pass
def main():
car = Car()
#print("How many cylinders? - " + str(car.cylinder))
if __name__ == "__main__":
main()
sys.exit(0)
Печать в классе Car (функция init) дает следующее:
How many cylinders? - <property object at 0x10b754a48>
И если я раскомментирую print в основной функции, это выдаст мне ошибку:
Traceback (most recent call last):
File "./test62.py", line 49, in <module>
main()
File "./test62.py", line 46, in main
print("How many cylinders? - " + str(car.cylinder))
File "./test62.py", line 11, in cylinder
return self.__cylinder
AttributeError: 'Car' object has no attribute '_Engine__cylinder'
Что я делаю не так на каждом из этих отпечатков?