2
私は2,3日間OOPで遊んでいましたが、今はsuper()
メソッドの仕組みを理解しようとしています。pythonの__str__メソッドでsuper()を呼び出しますか?
問題は私が__str__
関数を別のクラスから呼び出してスーパークラスのものを継承したいということです。
私はPython inheritance: Concatenating with 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)
ですだから私は与えられた値を返すためにタクシークラスで__str__
機能を求めており、その後、サブクラス内の文字列クラスは、最後の値を返すように。
どうすればよいですか?
'super(Taxi、self).__ str __()'はあなたが完全に無視している文字列を返します。あなたはそれを呼び出すことはできません。他の投稿に示されているように、結果*で何かをする必要があります。 – jonrsharpe
私はなぜdownvoteを得たかわかりません。それは明確な質問ですが、初心者ですが、あなたは明らかにそれを理解するための努力をしています。 –