> 백엔드 개발 > 파이썬 튜토리얼 > Python 함수 소개: 함수 및 슈퍼 함수의 예

Python 함수 소개: 함수 및 슈퍼 함수의 예

WBOY
풀어 주다: 2023-11-04 16:27:26
원래의
1087명이 탐색했습니다.

Python 함수 소개: 함수 및 슈퍼 함수의 예

파이썬 함수 소개: 슈퍼 함수의 함수와 예

super() 함수는 파이썬에서 흔히 사용되는 내장 함수로, 주로 부모 클래스(슈퍼 클래스)의 메서드를 호출하는 데 사용됩니다. super() 함수를 사용하여 하위 클래스의 상위 클래스에서 재정의된 메서드를 호출합니다. 이 글에서는 슈퍼 함수의 기능과 예시를 자세히 소개하고, 참고할 수 있는 구체적인 코드 예시도 제공합니다.

  1. 슈퍼 함수의 기능

Python에서는 하위 클래스에서 상위 클래스의 일부 메서드를 다시 작성해야 하는 경우가 많습니다. 이 경우 하위 클래스에서 원래 부모 클래스 메서드를 호출하려면 super() 함수를 사용해야 합니다. super() 함수를 사용하면 다음 기능을 수행할 수 있습니다.

(1) 하위 클래스에서 메서드를 다시 작성하는 대신 상위 클래스에서 메서드를 호출합니다.

(2) 하위 클래스의 상속 관계로 인해 발생하는 무한 문제를 방지합니다.

(3) 상위 클래스에 정의되지 않은 메소드를 실행할 수 있습니다.

  1. 슈퍼 함수 사용법

super() 함수에는 두 가지 사용법이 있습니다. 하나는 직접 호출하는 것이고, 다른 하나는 두 개의 매개변수를 사용하여 호출하는 것입니다.

(1) 직접 호출

super() 함수를 직접 호출할 때는 서브클래스와 서브클래스 인스턴스를 파라미터로 지정해야 합니다. 예:

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

class Student(Person):
    def __init__(self, name, age, grade):
        super().__init__(name, age)
        self.grade = grade
로그인 후 복사

위 코드에서 Student 클래스는 Person 클래스의 __init__ 메서드를 재정의합니다. super() 함수를 사용하면 상위 클래스의 __init__ 메서드를 쉽게 호출할 수 있으므로 코드 중복과 오류 가능성을 피할 수 있습니다.

(2) 두 개의 매개변수로 호출

부모 클래스의 생성자가 아닌 메서드(예: 일반 메서드)를 호출하려면 두 개의 매개변수로 super() 함수를 호출해야 합니다. 예:

class Person:
    def say_hello(self):
        print("Hello, I'm a person.")

class Student(Person):
    def say_hello(self):
        super(Student, self).say_hello()
        print("I'm a student.")
로그인 후 복사

위 코드에서 Student 클래스는 Person 클래스의 say_hello 메서드를 재정의합니다. super() 함수를 사용할 때 두 개의 매개변수를 지정해야 합니다. 첫 번째 매개변수는 서브클래스의 이름이고 두 번째 매개변수는 서브클래스 인스턴스입니다. 이러한 방식으로 상위 클래스의 메서드를 하위 클래스에서 호출할 수 있으므로 코드 중복 및 오류 가능성을 피할 수 있습니다.

  1. super 함수의 예

super() 함수의 사용법을 더 잘 이해하고 익히기 위해 몇 가지 구체적인 코드 예가 ​​아래에 제공됩니다.

(1) 상위 클래스의 __init__ 메서드를 호출합니다

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

class Student(Person):
    def __init__(self, name, age, grade):
        super().__init__(name, age)
        self.grade = grade

    def get_info(self):
        print("Name: {} Age: {} Grade: {}".format(self.name, self.age, self.grade))

student = Student("Lucy", 18, "Grade 10")
student.get_info()
로그인 후 복사

이 예에서는 Person 클래스와 Student 클래스를 정의합니다. Student 클래스의 __init__ 메서드에서 상위 클래스 Person의 __init__ 메서드를 호출합니다. 이 함수는 super() 함수를 사용하여 쉽게 구현할 수 있습니다. 마지막으로 get_info 메소드를 호출하여 학생의 정보를 출력한다.

(2) 상위 클래스의 일반적인 메서드 호출

class Person:
    def say_hello(self):
        print("Hello, I'm a person.")

class Student(Person):
    def say_hello(self):
        super(Student, self).say_hello()
        print("I'm a student.")

student = Student()
student.say_hello()
로그인 후 복사

이 예에서는 Person 클래스와 Student 클래스를 정의합니다. Student 클래스에서는 Person 클래스의 say_hello 메서드를 재정의하고 super() 함수를 사용하여 상위 클래스 Person의 say_hello 메서드를 호출합니다. 마지막으로 say_hello 메소드를 호출하여 학생의 인사말을 출력합니다.

  1. 요약

super() 함수는 Python에서 일반적으로 사용되는 내장 함수로, 주로 상위 클래스 메서드를 호출하는 데 사용됩니다. super() 함수를 사용하면 코드 중복과 오류 가능성을 피할 수 있습니다. 하위 클래스에서 상위 클래스의 메서드를 재정의할 때 super() 함수를 사용하면 상위 클래스의 메서드를 더 쉽게 호출할 수 있습니다. 동시에, super() 함수를 사용할 때 상속 관계로 인해 발생하는 무한 재귀 문제를 피하기 위해 두 매개변수의 특정 값을 지정해야 한다는 점에도 유의해야 합니다.

위 내용은 Python 함수 소개: 함수 및 슈퍼 함수의 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿