Jan*_*cak 8 python methods inheritance superclass
我想从继承的类中调用父调用方法
代码看起来像这样
#!/usr/bin/env python
class Parent(object):
def __call__(self, name):
print "hello world, ", name
class Person(Parent):
def __call__(self, someinfo):
super(Parent, self).__call__(someinfo)
p = Person()
p("info")
Run Code Online (Sandbox Code Playgroud)
我明白了,
File "./test.py", line 12, in __call__
super(Parent, self).__call__(someinfo)
AttributeError: 'super' object has no attribute '__call__'
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚为什么,有人可以帮我这个吗?
Pet*_*rin 15
该super函数将派生类作为其第一个参数,而不是基类.
super(Person, self).__call__(someinfo)
Run Code Online (Sandbox Code Playgroud)
如果你需要使用基类,你可以直接使用它(但要注意这会破坏多重继承,所以你不应该这样做,除非你确定这是你想要的):
Parent.__call__(self, someinfo)
Run Code Online (Sandbox Code Playgroud)