gpt4 book ai didi

python - 如何在基类方法中使用派生类变量

转载 作者:行者123 更新时间:2023-11-30 23:14:32 27 4
gpt4 key购买 nike

我有一个相互继承的类层次结构,看起来像这样:

class BaseClass(object):
def __init__(self):
self.localLog = logging.getLogger(testName)
self.var1 = 'a'

def printVar(self):
print self.var1

class SubClass1(BaseClass):
def __init__(self):
self.var1 = 'b'
super(SubClass1, self).__init__()

class SubClass2(SubClass1):
def __init__(self):
self.var1 = 'c'
super(SubClass2, self).__init__()

现在我想实例化 SubClass2 并使用 SubClass2 本地 var1< 调用 BaseClass printVar 方法变量:

obj = SubClass2()
obj.printVar()

我想要发生的是变量c一直爬升到BaseClass并传递给printVar方法。然而,我得到的是变量a

我意识到通过删除 super 行可以得到想要的结果,但我必须让它们能够访问所有继承类中的 self.localLog 变量.

有没有办法实现我想要的,或者我应该为每个类保留一个本地 printVar 方法?

最佳答案

似乎您只需在设置 var1 之前调用 super(...).__init__() before 即可轻松解决问题子类。

关于python - 如何在基类方法中使用派生类变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28710604/

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