私はかなり類似している親クラスの一般的なメソッドをグループ化したいという2つの 'Child'クラスを作成しています。私の問題は、スーパークラスから子クラスの静的変数にアクセスしようとするときに発生します。私が試したNameError: name 'var' is not defined
Pythonでスーパークラスから静的変数にアクセスする
class Parent:
@staticmethod
def do_something_with_var():
print(var)
class Child(Parent):
var = "Hello world"
Child.do_something_with_var()
次のものがParent
でvar
を宣言することは明らかだったが、同じエラーが解消されない:
次のコードは、エラーがスローされます。
Iが見出さ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を引数として提供していました...今はすべてクリアです! –