파이썬 함수 소개: 슈퍼 함수의 함수와 예
super() 함수는 파이썬에서 흔히 사용되는 내장 함수로, 주로 부모 클래스(슈퍼 클래스)의 메서드를 호출하는 데 사용됩니다. super() 함수를 사용하여 하위 클래스의 상위 클래스에서 재정의된 메서드를 호출합니다. 이 글에서는 슈퍼 함수의 기능과 예시를 자세히 소개하고, 참고할 수 있는 구체적인 코드 예시도 제공합니다.
Python에서는 하위 클래스에서 상위 클래스의 일부 메서드를 다시 작성해야 하는 경우가 많습니다. 이 경우 하위 클래스에서 원래 부모 클래스 메서드를 호출하려면 super() 함수를 사용해야 합니다. super() 함수를 사용하면 다음 기능을 수행할 수 있습니다.
(1) 하위 클래스에서 메서드를 다시 작성하는 대신 상위 클래스에서 메서드를 호출합니다.
(2) 하위 클래스의 상속 관계로 인해 발생하는 무한 문제를 방지합니다.
(3) 상위 클래스에 정의되지 않은 메소드를 실행할 수 있습니다.
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() 함수를 사용할 때 두 개의 매개변수를 지정해야 합니다. 첫 번째 매개변수는 서브클래스의 이름이고 두 번째 매개변수는 서브클래스 인스턴스입니다. 이러한 방식으로 상위 클래스의 메서드를 하위 클래스에서 호출할 수 있으므로 코드 중복 및 오류 가능성을 피할 수 있습니다.
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 메소드를 호출하여 학생의 인사말을 출력합니다.
super() 함수는 Python에서 일반적으로 사용되는 내장 함수로, 주로 상위 클래스 메서드를 호출하는 데 사용됩니다. super() 함수를 사용하면 코드 중복과 오류 가능성을 피할 수 있습니다. 하위 클래스에서 상위 클래스의 메서드를 재정의할 때 super() 함수를 사용하면 상위 클래스의 메서드를 더 쉽게 호출할 수 있습니다. 동시에, super() 함수를 사용할 때 상속 관계로 인해 발생하는 무한 재귀 문제를 피하기 위해 두 매개변수의 특정 값을 지정해야 한다는 점에도 유의해야 합니다.
위 내용은 Python 함수 소개: 함수 및 슈퍼 함수의 예의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!