我有两个同名的类和方法。我有派生类的对象。当我从派生类对象调用方法(foo)时,它应该调用基类方法
class A:
def foo(self):
print "A Foo"
class B(A):
def foo(self):
print "B Foo"
b = B()
b.foo() # "B Foo"
在做了一些搜索之后,我得到了如下的一些解决方案,不确定这是否是正确的方法
a = A()
b.__class__.__bases__[0].foo(a) # A Foo
有没有更好的办法
Tags:
当您从派生类对象调用方法(foo)时,它不会调用基类方法,因为您正在重写它。可以为基类或派生类使用另一个方法名来解决冲突
如果您使用的是python3,请使用
super
:输出:
如果从
object
继承并指定super
的参数,则可以在Python 2中执行相同的操作:输出:
也可以像调用自由函数一样调用该方法:
输出:
相关问题 更多 >
编程相关推荐