我创建了几个'Child'类,它们非常相似,因此想要在父类中对常用方法进行分组。当试图从超类访问子类的静态变量时,我的问题就来了。从python中的超类访问类的静态变量
下面的代码引发错误:NameError: name 'var' is not defined
class Parent:
@staticmethod
def do_something_with_var():
print(var)
class Child(Parent):
var = "Hello world"
Child.do_something_with_var()
我想接下来的事情显然在Parent
申报var
,但同样的错误仍然存在。
class Parent:
var = ""
@staticmethod
def do_something_with_var():
print(var)
class Child(Parent):
var = "Hello world"
Child.do_something_with_var()
,我发现的溶液中以接收所述发送者类,但随后的呼叫变成有点难看:
class Parent:
@staticmethod
def do_something_with_var(cls):
print(cls.var)
class Child(Parent):
var = "Hello world"
Child.do_something_with_var(Child)
哦,我实际上已经尝试过你的解决方案,但我仍然在提供Child作为参数......现在全部清楚! –