클래스 상속
- 어떤 클래스를 만들 때, 기능을 이어(상속)받는것.
- 클래스를 상속하는 방법pass
- class 자식클래스(부모클래스):
- 상속해주는 클래스 : 부모클래스, 상속받는 클래스 : 자식클래스
# 부모클래스
class Calculator():
def __init__(self, first, second):
self.first = first
self.second = second
def add(self):
result = self.first + self.second
return result
def subtract(self):
result = self.first - self.second
return result
def multiply(self):
result = self.first * self.second
return result
def divide(self):
result = self.first / self.second
return result
# 자식클래스 Perfectcal
class Perfectcal(Calculator):
def modulo(self):
result = self.first % self.second
return result
b = Perfectcal(6,3)
print(b.modulo()) # 6 / 3 = 2, 나머지 0 -> 0
- 생성자(init)를 자식클래스에 따로 작성하지 않아도 파이썬 내부적으로 부모클래스의 생성자를 불러온다.
- 자식 클래스에서 생성자에 따로 하는 작업이 있을 경우 super()를 통해 부모클래스의 생성자를 불러올 수 있다.super()init( )
- def init( ):
메소드 오버라이딩 (Method Overriding)
- 부모클래스의 메소드를 가져와 수정하고 덮어쓴다.
class Calculator():
def __init__(self, first, second):
self.first = first
self.second = second
def add(self):
result = self.first + self.second
return result
def subtract(self):
result = self.first - self.second
return result
def multiply(self):
result = self.first * self.second
return result
def divide(self):
result = self.first / self.second
return result
class Perfectcal(Calculator):
def modulo(self):
result = self.first % self.second
return result
def divide(self): # divide method override
result = self.first // self.second
return result
a = Calculator(13,3)
b = Perfectcal(13,3)
print(a.divide()) # 4.333333333333333
print(b.divide()) # 4
클래스 변수
- 객체 변수는 독립적으로 값을 유지하고 다른 객체의 영향을 받지 않는다.
- 반면에 클래스 변수는 클래스로 만든 모든 객체에 공유된다.
- 객체들이 클래스 변수를 공유한다.
class Food:
favorite = "치킨"
a = Food()
b = Food()
print(a.favorite, b.favorite) # 치킨 치킨
# 값 바꾸기
Food.favorite = "피자"
print(a.favorite, b.favorite) # 피자 피자
c = Food()
d = Food()
print(c.favorite, d.favorite) # 피자 피자
# 메모리값 = 1988956230256
print(id(a.favorite))
print(id(b.favorite))
print(id(c.favorite))
print(id(d.favorite))
- 공유된 객체는 모두 같은 데이터 값을 갖는다.
Source
코딩 커뮤니티 - 코뮤니티 [파이썬/C언어/자바/웹,앱개발/독학]
코딩 커뮤니티 - 코뮤니티 [파이썬/... : 네이버 카페
코뮤니티 [코딩공부/독학/스터디/대외활동] : python, C언어, java, 자바스크립트, HTML, CSS, 웹/앱개발
cafe.naver.com
'Coding > Python' 카테고리의 다른 글
Pandas 라이브러리 모음 (0) | 2022.02.21 |
---|---|
Numpy 라이브러리 모음 (0) | 2022.02.21 |
[코뮤니티] 클래스와 메소드, 생성자 (0) | 2021.09.29 |
[코뮤니티] 파이썬(python) 튜플, 집합, 딕셔너리(dictionary) (0) | 2021.09.28 |
[코드잇] 파이썬(python)으로 숫자야구 게임 시뮬레이션 구현하기 (0) | 2021.09.27 |