子クラスから静的関数にアクセスする方法を教えてください。Python3:子クラスから静的関数にアクセス
class Parent:
bar = []
@classmethod
def foo(cls):
print(' | '.join(cls.bar))
class Child_A(Parent):
bar = ['abs', 'arq', 'agf']
foo() # ERROR: NameError: name 'foo' is not defined
### abs | arq | agf
class Child_B(Parent):
bar = ['baz', 'bux', 'bet']
foo() # ERROR: NameError: name 'foo' is not defined
### baz | bux | bet
class Child_C(Parent):
bar = ['cat', 'cqy', 'cos']
foo() # ERROR: NameError: name 'foo' is not defined
### cat | cqy | cos
子供たちそれぞれがbar
リストの独自のセットを持っていると私は彼らが正しい文字列をプリントアウトするために、親クラスからfoo()
機能を使用します。クラスメソッドがある方法である
class Parent:
bar = []
@classmethod
def foo(cls):
print(' | '.join(cls.bar))
class Child(Parent):
bar = ['baz', 'qux', 'far']
Child.foo() # This will make cls Child class and access child's bar element
### baz | qux | far
あなたにはクラスメソッドがあります。インスタンス化せずに親オブジェクトを使用するだけです。 'Parent.foo()' – Kasramvd
'Parent.foo()'は 'Child.bar'ではなく' Parent.bar'を返します。 – MakPo
それがあなたの質問に完全に説明したいなら、それを完全に説明してください。 – Kasramvd