>백엔드 개발 >파이썬 튜토리얼 >Python 자식 클래스에서 부모 클래스 메서드를 어떻게 호출합니까?

Python 자식 클래스에서 부모 클래스 메서드를 어떻게 호출합니까?

Patricia Arquette
Patricia Arquette원래의
2024-11-27 12:25:11636검색

How Do I Call Parent Class Methods in Python Child Classes?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.