2013-05-23 2 views
1

서브 클래스가 부모 static 메소드를 호출 할 수 있는지 궁금 해서요.파이썬 서브 클래스에서 수퍼 클래스 메소드 호출하기

내가 그 기술을 사용할 때 알아야 할 함정이 있다면 알고 싶어
class A(object): 
    @classmethod 
    def static(cls): 
    print('act on '+cls.__name__) 

class B(A): 
    def foo(self): 
     print('foo()') 

>>> B.static() 
act on B 

...

어떤 조언을?

답변

1

당신이 부르는 것은 부모의 classmethod이고, staticmethod이 아닙니다.

어쨌든, 둘 다 괜찮 으면서 하위 클래스로 호출하는 것이 일반적입니다.

경우 당신이 당신의 BAclassmethod을 무시, 당신은 여전히 ​​super(B, cls).static를 사용하여 A.static를 참조 할 수 있습니다.

+0

그래, 고맙습니다. – Ailete619