我可以强制父类调用派生类的函数版本吗?
class Base(object):
attr1 = ''
attr2 = ''
def virtual(self):
pass # doesn't do anything in the parent class
def func(self):
print "%s, %s" % (self.attr1, self.attr2)
self.virtual()
以及派生自它的类
class Derived(Base):
attr1 = 'I am in class Derived'
attr2 = 'blah blah'
def virtual(self):
# do stuff...
# do stuff...
清除模糊:
d = Derived()
d.func() # calls self.virtual() which is Base::virtual(),
# and I need it to be Derived::virtual()
最佳答案
如果您实例化一个Derived
(例如d = Derived()
),.virtual
将被d.func 调用()
是 Derived.virtual
。如果没有涉及 Derived
的实例,那么 Derived.virtual
就没有合适的 self
,当然不可能调用它。
关于Python在父类中使用派生类的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2297843/