다음 코드를 고려하십시오.
class Base(object):
@classmethod
def do(cls, a):
print cls, a
class Derived(Base):
@classmethod
def do(cls, a):
print 'In derived!'
# Base.do(cls, a) -- can't pass `cls`
Base.do(a)
if __name__ == '__main__':
d = Derived()
d.do('hello')
> $ python play.py
> In derived!
> <class '__main__.Base'> msg
에서 Derived.do
어떻게 전화 Base.do
합니까?
super
일반적인 개체 메서드 인 경우 일반적으로 또는 기본 클래스 이름을 직접 사용하지만 기본 클래스에서 classmethod를 호출하는 방법을 찾을 수 없습니다.
위의 예에서는 클래스 대신 클래스를 Base.do(a)
인쇄합니다 .Base
Derived
1
관련 : 파이썬의 자식 클래스에서 부모 클래스의 메서드를 호출하는 방법은 무엇입니까?
—
Piotr Dobrogost