Python 하위 클래스에서 상위 클래스 메서드를 호출하는 방법
객체 지향 프로그래밍에서 파생 클래스는 일반적으로 해당 클래스에 정의된 메서드에 액세스해야 합니다. 학부모 수업. 이는 복잡한 클래스 계층 구조를 만들 때 발생하는 일반적인 시나리오입니다. 그러나 Python의 명명 규칙은 Perl 및 Java와 같은 다른 언어를 사용하는 개발자에게 몇 가지 질문을 제기할 수 있습니다.
Perl의 "SUPER" 또는 Java의 "super" 키워드와 달리 Python은 상위 메소드를 호출하기 위한 사전 정의된 수단을 제공하지 않습니다. . 대신, 메서드를 호출할 때 상위 클래스 이름을 명시적으로 지정해야 합니다. 이로 인해 상속된 메서드의 계보 추적이 복잡해지는 깊은 클래스 계층 구조를 유지하는 데 문제가 발생할 수 있습니다.
이러한 제한을 극복하고 상위 메서드를 원활하게 호출하기 위해 Python은 super() 함수를 제공합니다. 이 유틸리티를 사용하면 해당 이름을 명시적으로 참조하지 않고도 상위 클래스에서 메서드를 호출할 수 있습니다. 간단한 예를 통해 super()를 사용하는 방법을 살펴보겠습니다.
class Foo(Bar): def baz(self, **kwargs): return super().baz(**kwargs)
이 코드에서 Foo 클래스는 Bar를 상속하고 baz() 메서드를 정의합니다. Foo의 baz() 메서드 내에서 super().baz(**kwargs)를 사용하여 Bar의 baz() 메서드를 호출할 수 있습니다.
Python 3 이전 버전을 사용하는 경우 새 스타일 클래스의 사용을 명시적으로 활성화하고 다음과 같이 코드를 작성해야 합니다.
class Foo(Bar): def baz(self, arg): return super(Foo, self).baz(arg)
이러한 방식으로 super()를 활용하면 상관없이 상위 메서드를 쉽게 호출할 수 있습니다. 클래스 계층 구조의 깊이. 이렇게 하면 코드를 깔끔하고 유지 관리하기 쉽게 유지하여 해당 메서드에 액세스할 때 상위 클래스의 이름을 명시적으로 지정해야 할 필요성이 줄어듭니다.
위 내용은 Python 자식 클래스에서 부모 클래스 메서드를 어떻게 호출합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!