2017-02-03 3 views
0

Как это сделать в основном?Python вызов дочерней статической переменной из родительского статического метода

class Parent: 
    Foo = 'Parent food' 

    @staticmethod 
    def bar(): 
     # want to print whatever the child's Foo is 


class Child(Parent): 
    Foo = 'Child foo' 


# This should print "Child foo" 
Child.bar() 
+4

Вы хотите _classmethod_, не _staticmethod_. По его определению статические методы не имеют гражданства. –

ответ

2

Вы можете использовать для этого classmethod

class Parent: 
    Foo = 'Parent food' 

    @classmethod 
    def bar(cls): 
     print cls.Foo 

class Child(Parent): 
    Foo = 'Child foo' 


Child.bar() 
# This will print "Child foo" 
0

Как уже упоминалось в комментариях, вам нужен классный метод.

class Parent: 
    Foo = 'Parent food' 

    @classmethod 
    def bar(cls): 
     print(cls.Foo) 
Смежные вопросы