Python 상속
- 이전 페이지 Python 클래스/객체
- 다음 페이지 Python 반복
Python 상속
이를 통해 다른 클래스의 모든 메서드와 속성을 继承할 수 있는 클래스를 정의할 수 있습니다。
부모 클래스이를 继承한 클래스로,기본 클래스라고도 합니다。
자식 클래스다른 클래스에서 继承된 클래스로,도입 클래스라고도 합니다。
부모 클래스 생성
모든 클래스는 부모 클래스로 사용될 수 있으며, 따라서 생성 문법은 다른 모든 클래스와 동일합니다:
인스턴스
이름을 Person으로 하는 클래스를 생성하며, firstname과 lastname 속성 및 printname 메서드를 포함합니다:
class Person: def __init__(self, fname, lname): self.firstname = fname self.firstname = fname self.lastname = lname def printname(self): print(self.firstname, self.lastname) # Person을 사용하여 객체를 생성하고 printname 메서드를 실행하세요: x = Student("Elon", "Musk")
x = Person("Bill", "Gates")
서브 클래스 생성
인스턴스
기타 클래스에서 기능을 继承하는 클래스를 생성하려면, 서브 클래스를 생성할 때 부모 클래스를 매개변수로 전달하세요:
class Student(Person): pass
부모 클래스의 __init__() 함수를 继承하려면 부모 클래스의 __init__() 함수를 호출하는 것을 추가하세요:Student 클래스를 생성하여 Person 클래스에서 속성과 메서드를 继承하도록 합니다: pass
이 클래스에 추가하고 싶은 다른 속성이나 메서드가 없다면, 사용하세요:
키워드.
인스턴스
이제, Student 클래스는 Person 클래스와 동일한 속성과 메서드를 가지고 있습니다.
Student 클래스를 사용하여 객체를 생성하고 printname 메서드를 실행하세요: x = Student("Elon", "Musk")
x.printname()
__init__() 함수를 추가하려면
현재까지, 우리는 부모 클래스의 속성과 메서드를 继承하는 서브 클래스를 생성했습니다. __init__()
함수를 자식 클래스에 추가하면 됩니다. pass
키워드)
부모 클래스의 __init__() 함수를 继承하려면 부모 클래스의 __init__() 함수를 호출하는 것을 추가하세요:클래스를 사용하여 새 객체를 생성할 때마다 자동으로 __init__() 함수가 호출됩니다.
인스턴스
Student 클래스에 __init__() 함수를 추가하세요:
class Student(Person): def __init__(self, fname, lname): # 속성 추가 등
자식 클래스는 부모 클래스의 __init__() 함수를 더 이상 继承하지 않습니다.
부모 클래스의 __init__() 함수를 继承하려면 부모 클래스의 __init__() 함수를 호출하는 것을 추가하세요:주석:
자식의 __init__() 함수는 부모의 __init__() 함수의 继承을 덮어쓰습니다.
인스턴스
class Student(Person): def __init__(self, fname, lname): 부모의 __init__() 함수를 继承하려면 부모의 __init__() 함수를 호출하는 것을 추가하세요:
Person.__init__(self, fname, lname)
지금까지, 우리는 __init__() 함수를 성공적으로 추가하고 부모 클래스의 继承을 유지했습니다. 이제 __init__() 함수에 기능을 추가할 준비가 되었습니다.
super() 함수를 사용하는 방법이 있습니다. super()
Python에는 또 다른
인스턴스
class Student(Person): def __init__(self, fname, lname): super().__init__(fname, lname)
함수를 사용하여, 서브 클래스가 모든 메서드와 속성을 부모에서 继承합니다: super()
함수를 사용하여, 부모 요소의 이름을 사용하지 않아도 됩니다. 그것은 자동으로 부모 요소에서 메서드와 속성을 继承합니다.
속성 추가 함수를 추가하면 됩니다.
인스턴스
이름이 graduationyear
의 속성을 추가하려면 Student
클래스:
class Student(Person): def __init__(self, fname, lname): super().__init__(fname, lname) self.graduationyear = 2019
이 예제에서 2019년은 변수이며, student 객체를 생성할 때 Student 클래스에 전달되어야 합니다. 이를 위해 __init__() 함수에 다른 파라미터를 추가하십시오:
인스턴스
추가 year
파라미터를 추가하고, 객체를 생성할 때 올바른 연도를 전달하십시오:
class Student(Person): def __init__(self, fname, lname, year): super().__init__(fname, lname) self.graduationyear = year x = Student("Elon", "Musk", 2019)
메서드 추가
인스턴스
이름이 welcome
의 메서드를 Student 클래스에 추가하십시오:
class Student(Person): def __init__(self, fname, lname, year): super().__init__(fname, lname) self.graduationyear = year def welcome(self): print("Welcome", self.firstname, self.lastname, "to the class of", self.graduationyear)
안내:자식 클래스에서 부모 클래스의同名 함수와 같은 메서드를 추가하면 부모 메서드를 상속하게 됩니다.
- 이전 페이지 Python 클래스/객체
- 다음 페이지 Python 반복