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

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

Susan Sarandon
Susan Sarandon원래의
2024-11-27 04:04:10523검색

How Do I Call Parent Class Methods in Python Inheritance?

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

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