2016-07-29 69 views
0

我想在基類(FooBase)中做類似類屬性的派生類(Foo)。我想用Python 來做到這一點。如何在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

您需要製作test a class method,並給它一個它可以用來訪問該類的參數;通常這個參數被命名爲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

相關問題