Pla*_*il1 2 python string class python-3.x
我已经玩了几天OOP,现在我正在努力了解该super()方法的工作原理.
我遇到的问题是我想__str__从另一个类调用我的函数并继承超类中的东西.
我读了Python继承:与super __str__连接,但该解决方案不起作用.
我的代码就是这个
class Taxi:
def __init__(self, drivername, onduty, cities):
self.drivername = drivername
self.onduty = onduty
self.cities = cities
def __str__(self):
return '{} {} {}'.format(self.drivername, self.onduty, self.cities)
class Type(Taxi):
def __init__(self, drivername, onduty, cities, model):
super().__init__(drivername, onduty, cities)
self.model = model
def __str__(self):
super(Taxi, self).__str__() #Tried as well with super().__str__()
return '{}'.format(self.model)
mymodel = Type('Foobar', True, 'Washington', 'Volvo')
print(mymodel)
Run Code Online (Sandbox Code Playgroud)
所以我希望__str__Taxi类中的函数返回给定的值,然后子类中的字符串类返回最后一个值.
我该怎么做?
你完全忽略了调用超类定义的结果__str__.你可能想要一些东西
def __str__(self):
prefix = super().__str__()
return '{} {}'.format(prefix, self.model)
Run Code Online (Sandbox Code Playgroud)
打电话super().__str__()没有做任何神奇的事情.它只是另一种方法调用,因此您需要以这种方式对待它.除非您这样做,否则返回值不会神奇地吸收到您的方法中.
| 归档时间: |
|
| 查看次数: |
1006 次 |
| 最近记录: |