객체(Object)란 무엇인가
- 객체
- 변수(속성, attribute)
- 함수(메서드, method)
- 객체(사물)
- 객체가 가지고 있는 함수(메서드)는 해당 객체의 기능을 의미하며
- 다른 객체와 어떻게 상호 작용하는지를 정의 함.
클래스(Class)란 무엇인가?
- 클래스는 객체를 만들기 위한 설계도
- 객체 설계 → Tiguan = Tiger + Iguana
- 속성(attribute, 변수)
- 메서드(method, (멤버)함수)
- 객체 설계 → Tiguan = Tiger + Iguana
객체 초기화 함수와 속성
- 초기화 함수 : __init__(self)
- self : 생성될(생성중인) 객체 자기 자신
class Tiguan(): def __init__(self): pass
객체의 메서드
class Tiguan():
def __init__(self, name):
self.name = name
def run(self):
print('꼼지란~ 꼼지락~')
class Tiguan():
def __init__(self, name):
s elf.name = name
def run(self):
print('꼼지란~ 꼼지락~')
tiguan = Tiguan('쫑')
print( tiguan.name ) # 인스턴스, tiguan의 name 속성 프린트
tiguan.run() # 인스턴스, tiguan의 run() 메서드 호출
쫑
꼼지란~ 꼼지락~
- 클래스(객체 설계도) 상속
class Tiguan():
def __init__(self, name):
self.name = name
self.hello()
def run(self):
print('꼼지란~ 꼼지락~')
def hello(self):
print('안녕하세요')
class SonOfTiguan(Tiguan):
pass
son_of_tiguan = SonOfTiguan('해피')
son_of_tiguan.run()
안녕하세요
꼼지란~ 꼼지락~
부모(Tiguan)나 자식(SonOfTiguan)이나 뛰는 게 똑 같네!
- 부모 클래스로부터 속성, 메서드를 상속 받음
- 필요에 따라 속성, 메서드를 추가, 변경하여 자식 클래스를 생성할 수 있음
class SonOfTiguan(Tiguan):
def shout(self):
print('My parent is a Tiguan!')
son_of_tiguan = SonOfTiguan('해피')
son_of_tiguan.run()
son_of_tiguan.shout()
안녕하세요
꼼지란~ 꼼지락~
My parent is a Tiguan!
부모(parent) 클래스 == 슈퍼(super) 클래스 == 베이스(base) 클래스
메서드 오버라이드(override)
- 메서드(기능) 오버라이드(무시, 기각)
- 부모 클래스에 포함된 메서드
- 재정의
class SonOfTiguan(Tiguan):
def shout(self):
print('My parent is a Tiguan!')
def run(self):
print('하나 둘~ 하나 둘~')
son_of_tiguan = SonOfTiguan('해피')
son_of_tiguan.run()
안녕하세요
하나 둘~ 하나 둘~
자식이 부모한테 도움을 받을 일이 없을까?
부모 클래스의 능력(기능, 메서드)를 호출
class SonOfTiguan(Tiguan):
def __init__(self, name, color): # method overide
super().__init__(name)
self.color = color
def shout(self): # method 추가
print('My parent is a Tiguan!')
def run(self): # method override
print('하나 둘~ 하나 둘~')
class SonOfTiguan(Tiguan):
def __init__(self, name, color): # method overide
super().__init__(name)
self.color = color
def shout(self): # method 추가
print('My parent is a Tiguan!')
def run(self): # method override
print('하나 둘~ 하나 둘~')
son = SonOfTiguan('메리', 'black')
print(son.name)
print(son.color)
안녕하세요
메리
black
다른 클래스의 객체를 지금 설계 하고 있는 클래스의 속성으로 할당
class Tiguan():
def __init__(self, name):
self.name = name
def run(self):
print('꼼지란~ 꼼지락~')
def hello(self):
print('안녕하세요')
class Wing():
def fly(self):
print('푸드덕~ 푸드덕~')
class FlyingTiguan(Tiguan):
def __init__(self, name, color):
super().__init__(name)
self.color = color
self.hello()
self.wing = Wing() # look at me
def shout(self):
print('My parent is a Tiguan!')
def run(self):
print('하나 둘~ 하나 둘~')
class Tiguan():
def __init__(self, name):
self.name = name
def run(self):
print('꼼지란~ 꼼지락~')
def hello(self):
print('안녕하세요~ 제 이름은 {}이구요 하늘을 날 수 있답니다.'.format(self.name)) # look at me
class FlyingTiguan(Tiguan):
def __init__(self, name, color):
super().__init__(name)
self.color = color
self.hello()
def shout(self):
print('My parent is a Tiguan!')
def run(self):
print('하나 둘~ 하나 둘~')
def self_fly(self):
print('둥실 둥실 떠오른다')
bb = FlyingTiguan('매리', '블루')
bb.self_fly()
안녕하세요~ 제 이름은 매리이구요 하늘을 날 수 있답니다.
둥실 둥실 떠오른다
'빅데이터 분석가 양성과정 > Python' 카테고리의 다른 글
데이터 시각화 기초(2) (2) | 2024.07.05 |
---|---|
데이터 시각화 기초(1) (3) | 2024.07.05 |
Ch07-3 모듈 / 모듈 만들기 (2) | 2024.07.05 |
Ch07-2 모듈 / 외부 모듈 (1) | 2024.07.05 |
Ch07-1 모듈 / 표준 모듈 (0) | 2024.07.05 |