본문 바로가기

# Language/Python

[Python] 파이썬 Class 상속(inheritnace)

파이썬 Class 상속(inheritnace)

상속이란?

클래스에서 상속이란, 물려주는 클래스(Parent Class, Super class)의 내용(속성과 메소드)을 물려받는 클래스(Child class, sub class)가 가지게 되는 것을 말한다. 자식클래스를 선언할때 소괄호로 부모 클래스를 포함시키면, 자식클래스에서는 부모클래스의 속성과 메소드를 사용 할 수 있다.

class Parent:
    ...내용...

class Child(Parent):
    ...내용...

 

상속 기능은 기존의 class를 업데이트 할 때 유용하게 사용 할 수 있다.

기존의 Employee 클래스를 상속 받은 Employee2 클래스는 Employee 클래스의 속성과 메소드를 모두 사용할 수 있다. 

class Employee:
    def __init__(self):
        self.name = request.form.get('name')
        self.age = request.form.get('age')
    def show(self):
        print("나의 이름은 {}, 나이는 {}세입니다.".format(self,.name, self.age))
    def is_adult(self):
    	if self.age >= 20:
        	print("나는 성인입니다.")
        else:
        	print("나는 미성년자입니다.")
class Employee2(Employee):
    def __init__(self):
        super().__init__()
        self.gender = request.form.get('gender')
    def show(self):
        print("나의 이름은 {}, 나이는 {}세, 성별은 {}자입니다.".format(self,.name, self.age, self.gender))

 

부모 클래스의 함수를 호출할 때는 super(). 명령어를 앞에 붙여서 사용한다.

 Employee 클래스의 __init__ 함수를 Employee2 클래스의 __init__함수에서 super()를 사용해서 실행했다.

 

다음은 Employee2 클래스로 객체를 생성해서 부모 클래스의 매소드와, Employee2의 매소드를 실행한 예제이다.

 

다중상속

다중상속은 콤마(,)를 연결자로 부모 클래스를 괄호 안에 입력해주면 된다.

class Employee2(Employee, Company, Vacation):
    def __init__(self):
        ...

 

 

<참고>