我創建了幾個'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作爲參數......現在全部清楚! –