2016-07-29 5 views
0

클래스 속성 (Foo)의 클래스 특성을 사용하여 기본 클래스 (FooBase)에서 작업을 수행하고 싶습니다. 나는 파이썬 으로 이것을하고 싶다.Python3의 기본 클래스에서 파생 클래스의 클래스 속성에 액세스하는 방법은 무엇입니까?

class BaseFoo: 
    #felder = [] doesn't work 

    def test(): 
     print(__class__.felder) 

class Foo(BaseFoo): 
    felder = ['eins', 'zwei', 'yep'] 


if __name__ == '__main__': 
    Foo.test() 

어쩌면 다른 접근 방법이 있을까요?

+2

뭔가 여기 매우 잘못. 'test'는 * 클래스 메소드 * 또는 * 인스턴스 메소드 *라고 생각합니까? 최소한 cls 또는 self를 인수로 받아 들여야합니다. – deceze

답변

1

testclass method으로 설정하고 클래스에 액세스하는 데 사용할 수있는 인수를 지정해야합니다. 일반적으로이 arg의 이름은 cls입니다.

class BaseFoo: 
    @classmethod 
    def test(cls): 
     print(cls.felder) 

class Foo(BaseFoo): 
    felder = ['eins', 'zwei', 'yep'] 


if __name__ == '__main__': 
    Foo.test() 

출력

['eins', 'zwei', 'yep'] 
+0

대단히 감사합니다! – buhtz

관련 문제