Python에서 상위 클래스 메서드 호출
Python의 상속 메커니즘을 사용하면 파생 클래스가 기본 클래스 메서드에 액세스할 수 있지만 Perl이나 Java와는 달리 "super"와 같은 키워드를 제공하지 마세요. 대신 상위 클래스를 명시적으로 참조해야 합니다.
예:
Bar 클래스가 Foo 클래스를 확장하는 다음 예를 고려하세요.
class Foo: def frotz(self): return "Bamf" class Bar(Foo): def frotz(self): # Attempt to explicitly call the parent class 'frotz' method return Foo.frotz(self)
이 접근 방식을 사용하려면 부모 클래스를 명시적으로 지정해야 하므로 깊은 작업에는 불편합니다.
해결책: 'super()' 함수 사용
Python 2.2 이상에서는 super() 함수를 도입하여 보다 우아한 솔루션을 제공합니다.
class Bar(Foo): def frotz(self): # Now calling 'frotz' using the 'super()' function return super().frotz()
super() 함수는 파생 클래스의 컨텍스트를 기반으로 상속할 상위 클래스를 지능적으로 결정합니다. 수업. 이렇게 하면 상위 클래스를 명시적으로 지정할 필요가 없습니다.
Python의 경우 < 3:
그러나 Python 3 이전 버전의 경우 새 스타일 클래스 사용을 명시적으로 선택해야 합니다.
class Foo(object): def baz(self): pass class Bar(Foo): def baz(self, arg): return super(Bar, self).baz(arg) # Explicitly specifying 'Bar' as parent
객체 기본 클래스는 새 스타일을 활성화하는 데 사용됩니다. 스타일 클래스 구문.
따라서 Python에서는 'super()' 함수(선호)를 사용하거나 명시적으로 파생 클래스에서 상위 클래스 메서드를 호출하는 것이 가능합니다. 상위 클래스 참조(Python < 3에만 필요함).
위 내용은 Python 상속에서 부모 클래스 메서드를 어떻게 호출합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!