首页 > 解决方案 > 自定义继承类之间的类型转换

问题描述

我在下面的程序中,我希望 B 的实例调用 A 中的方法,但我不知道如何键入强制转换对象以便对象调用 A 中的方法,该方法在 B 中具有相同的名称,因此该方法在 A 中运行,但不在 B 中。

class A:
def doSomething(self):
    print("do something in A")

class B(A):
def doSomething(self):
    print('do something in B')

def main():
b = B()
b.doSomething()
(A)b.doSomething() # I want b to call the function in A instead of B

main()

标签: python

解决方案


如果您只想调用超类方法doSomethingon b,这就足够了:

class A(object):

    def doSomething(self):
        print('Do something in A')


class B(A):

    def doSomething(self):
        print('Do something in B')


b = B()
super(B, b).doSomething()

哪个打印:

Do something in A

“类型转换”的想法在 python 中并不真正适用。


推荐阅读