Class를 사용하는 이유
- 붕어빵 틀(Class), 붕어빵(Object, 객체)
- 여러 사람들이 각자 따로 붕어빵을 먹음
class Calculator:
# 생성자 : 초기값 설정 __init__
def __init__(self):
self.result = 0
# class 내부 함수
def add(self, num):
self.result += num
return self.result
cal1 = Calculator()
cal2 = Calculator()
print(cal1.add(3)) # 3
print(cal1.add(4)) # 7 (기존에 더했던 3이 cal1 객체에 저장되어 있음)
print(cal2.add(3)) # 3
print(cal2.add(7)) # 10 (기존에 더했던 3이 cal2 객체에 저장되어 있음)
상속
- 기존 Class를 변경하지 않고 기능을 추가하거나 변경할 경우
method overriding
- method 기능 수정
class FourCal:
def __init__(self, first, second):
self.first = first
self.second = second
def setdata(self, first, second):
self.first = first
self.second = second
def add(self):
result = self.first + self.second
return result
def mul(self):
result = self.first * self.second
return result
def sub(self):
result = self.first - self.second
return result
def div(self):
result = self.first / self.second
return result
class MoreFourCal(FourCal): # 상속
def pow(self):
result = self.first ** self.second
return result
class SafeFourCal(FourCal): # FourCal Class div method overriding
def div(self):
if self.second == 0: # 나누는 값이 0인 경우 0을 반환
return 0
else:
return self.first / self.second
Class variable
- Class로 만들어지는 객체 전체가 공유하는 변수
class Family:
lastname = "김"
print(Family.lastname) # 김
a = Family()
b = Family()
Family.lastname = "박"
print(a.lastname) # 박
print(b.lastname) # 박
출처
'IT > Programming Language' 카테고리의 다른 글
[Python] 행렬 회전 (0) | 2022.03.23 |
---|---|
[Python] 까먹을 만한 문법 정리 (0) | 2022.03.22 |
[Python] switch -> match (0) | 2022.03.22 |
Generic이란 (0) | 2022.03.06 |
[Javascript] 비동기 처리 방식 (0) | 2022.02.20 |
댓글