gpt4 book ai didi

python - Python 中的类继承、 super 方法和重写方法

转载 作者:太空宇宙 更新时间:2023-11-03 21:24:42 26 4
gpt4 key购买 nike

考虑以下代码:

class A:
def foo(self, a):
return a
def bar(self, a):
print(foo(a))

class B(A):
def foo(self, a):
return a[0]

现在调用B.bar(a)结果是print(a[0]) ,但我想要的是 print(a) 。更直接地说:我希望调用 bar()在子类中使用 foo 的定义给出A即使被覆盖。我该怎么做?

最佳答案

我相信这就是您正在寻找的:

class A(object):
def foo(self, a):
return a
def bar(self, a):
print(A.foo(self,a))

class B(A):
def foo(self, a):
return a[0]

或者:

class A:
def foo(self, a):
return a
def bar(self, a):
print(self.foo(a))

class B(A):
def foo(self, a):
return super().foo(a)

关于python - Python 中的类继承、 super 方法和重写方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53935613/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com