我有以下代碼與父類Test
和MyTest
的子類。 從外面看,我試圖訪問父類而不是子類的方法。所以我期待父類的display
函數。所以,我用super
函數來實現這一點。到現在爲止還挺好。但是當我嘗試將超級函數的返回分配給一個變量,如z
,我看到它會打印出我期望的內容,並且還會打印'None'
。超級函數返回None與結果
class Test(object):
def display(self, x):
self.x = x
print self.x
class MyTest(Test):
def someother(self):
print "i am a different method"
def display(self, x):
self.x = x
print "Getting called form MyTest"
a = MyTest()
z = super(type(a), a).display(10)
print z
10
None
我試圖理解爲什麼超強功能與預期值一起返回「無」
你需要添加''的默認display'它'返回None' –
你需要一個'返回自內return' .x'。否則,您可以改爲「打印a.x」。 –
打印與返回結果*不同。任何函數的默認返回值都是'None',除非它專門返回不同的東西。 –