새로운 기능을 추가하고 싶을 때
class Class1(object):
def method1(self):
return 'm1'
ㄱ기존에 존재하는 Class1 이라는 Class에 새로운 method를 추가하고 싶을 때는 어떻게 하나??
방법 1
class Class2(object):
def method1(self):
return 'm1'
def method2(self):
return 'm2'
새로운 Class2를 만들어서, 기존에 Class1에 존재하는 method를 복사하고, 새로운 method를 만든다.
방법 2
class Class3(Class1): #Class3 가 Class1을 상속한다.
def method2(self):
return 'm2'
상속의 기능을 활용한다.
class를 생성할 때 클레스명(object) 를 적어주는데, 이 object부분에 상속하고 싶은 Class명을 적어준다.
그러면, 해당 Class가 부모가 되어서 , 부모 Class에 있는 method들을 사용할 수 있다.
상속이 이루어지는 순서
c3 = Class3()
print(c3, c3.method1())
1 .c3. method() 를 하게되면 c3라는 인스턴스의 클레스(class3) 를 찾는다.
2. 그 클레스(class3) 안에서 method1이라는 것이 존재하는지 찾는다.
3. 존재하지 않는다면 class3의 부모 클레스(Class1) 를 찾는다
4. 그 부모(Class1) 가 가지고있는 method 중에서 method1이 존재하는지 찾아서 실행시킨다.
하지만, 상속을하면 여러가지 기능이 추가되면서 모순이 생길 수 있다.
'IT 공부 > python' 카테고리의 다른 글
2020-10-09 Python 과 Ruby 클래스 맴버 / 클래스 변수 (2) (0) | 2020.10.09 |
---|---|
2020-10-09 Python 과 Ruby 클래스 멤버 , 클래스 변수 (0) | 2020.10.09 |
2020-10-08 Python 과 Ruby 상속 (0) | 2020.10.08 |
2020-10-08 Python 과 Ruby 객체 지향 프로그래밍(4) (0) | 2020.10.08 |
2020-10-07 Python 과 Ruby 객체 지향 프로그래밍(3) (0) | 2020.10.07 |