我有以下代码与父类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',除非它专门返回不同的东西。 –