영감이 번뜩이는 삶

[파이썬 입문] 클래스2 본문

Python 도전기

[파이썬 입문] 클래스2

돌굴러가유피하세유 2022. 12. 11. 21:00
반응형

 

 

 

[파이썬 입문] 클래스1

지두 공부하는 중이지만유 클래스 여서부턴 꽤 어렵다고 느껴지네유 앞으로 여러 책에서 접하면서 계속 볼테지만 일단 복습은 무조건 할꺼에유 이 허접한 글 보면서 맛보기하시거나 이해를 도

anordinaryman.tistory.com


↑ 이전 글에서 써먹은 클래스로 본다면 초기값이 없어서 setdata 메서드를 먼저 꼭 실행해야 하는디유
처음부터 초기값을 지정하려면 __init__ 이따구로 생긴 놈을 써야해유
메서드명으로 _ _init_ _을 사용하면 이걸 생성자(Constructor)라고 해유 ( _ ← 언더바)
이전 글의 클래스 A에 생성자를 추가한 예시를 볼께유

더보기

>>> class A:
...     def __init__(self): #생성자 선언
...         self.x = int(input('x값 입력 : ')) #input()은 모두 문자열로 받으므로 int()로 정수화 필요
...         self.y = int(input('y값 입력 : '))
...     def add(self): #메서드 선언
...         return self.x + self.y
...
>>> a = A()
x값 입력 : 2
y값 입력 : 5
>>> a.add()
7


input으로 초기값을 직접 입력받아 클래스 변수에 대입하는 구조로 짜봤어유i
이렇게 하면 setdata 메서드 없이 클래스가 실행되면서 바로 입력을 받게 되는거에유

 

클래스에는 유용한 기능이 하나 있는데 바로 상속(inheritance)이에유
우리가 아는 상속이란 말 그대로 이미 있는 클래스가 자식을 낳아서 기능을 물려준다고 생각하면 돼유
(물론 부모 클래스는 죽지 않았지만유.... 말이 그렇다는거.........)

위의 클래스 A이 자식 AA를 낳아서 상속시켜볼께유
사용법이 아주 간단해유!

더보기

>>> class AA(A): #클래스 상속 A → AA
...     pass #기능 없음
...
>>> a = AA()
x값 입력 : 1
y값 입력 : 6
>>> a.add() #클래스 A의 메서드 사용
7


예시의 결과를 보면 자식이 부모랑 하는 짓이 똑같은걸 알 수 있어유
클래스에 속한 함수가 몇개든 다 사용할 수 있는거에유


예시 하나 더 보면서 활용법과 메서드 오버라이딩(overriding)에 대해 익혀봐유
오버라이딩은 덮어쓴다는거니까 이 점 유의해서 보도록 해유

더보기

>>> class AA(A): #클래스 상속 A → AA
...     def mul(self): #클래스 AA에 메서드 mul 추가
...         return self.x * self.y
...     def add(self): #메서드 add 오버라이딩
...         return str(self.x) + str(self.y) #문자열화하는 예약어 str

>>> a = AA()
x값 입력 : 2
y값 입력 : 4
>>> a.mul()
8
>>> a.add()
'24'


결과를 보면 아시겠지만 상속하면서 새로운 메서드를 추가하는 것도 가능하고 기존의 메서드를 덮어쓰는 것도 가능해유
직접 짜보고 실행해보면 더 이해가 잘 가니까 꼭 해보도록 해유~~

반응형

'Python 도전기' 카테고리의 다른 글

[파이썬 입문] 모듈2  (0) 2022.12.16
[파이썬 입문] 모듈1  (0) 2022.12.14
[파이썬 입문] 클래스1  (0) 2022.12.09
[파이썬 입문] 입출력  (0) 2022.12.02
[파이썬 입문] 함수  (1) 2022.11.30
Comments