EverGiver
05-1 클래스 본문
728x90
클래스와 객체
- 클래스
: 똑같은 무엇인가를 계속해서 만들어 낼 수 있는 설계 도면 - 객체
: 클래스로 만든 피조물 - 특징
1. 객체마다 고유한 성격을 가진다.
>>> class Cookie:
pass
>>> a = Cookie()
>>> b = Cookie()
사칙연산 클래스 만들기
class FourCal:
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 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 클래스 이름(상속할 클래스 이름)
>>> class MoreFourCal(FourCal):
def pow(self):
result = self.first ** self.second
return result
>>> a = MoreFourCal(4, 2)
>>> a.pow()
16
메서드 오버라이딩
: 부모 클래스(상속한 클래스)에 있는 메서드를 동일한 이름으로 다시 만드는 것
>>> class SafeFourCal(FourCal):
def div(self):
if self.second == 0:
return 0
else:
return self.first / self.second
>>> a = SafeFourCal(4, 0)
>>> a.div()
0
클래스 변수
: 클래스 변수는 클래스로 만든 모든 객체에 공유된다는 특징이 있다
>>> class Family:
lastname = "김"
>>> print(Family.lastname)
김
>>> a = Family()
>>> b = Family()
>>> print(a.lastname)
김
>>> print(b.lastname)
김
>>> Family.lastname = "박"
>>> print(a.lastname)
박
>>> print(b.lastname)
박
>>> id(Family.lastname)
4480159136
>>> id(a.lastname)
4480159136
>>> id(b.lastname)
4480159136
728x90
'Python > 문법' 카테고리의 다른 글
05-2 모듈 (0) | 2021.08.10 |
---|---|
04-3 파일 읽고 쓰기 (0) | 2021.08.05 |
04-2 사용자 입력과 출력 (0) | 2021.08.04 |
04-1 함수 (0) | 2021.08.04 |
03-3 for문 (0) | 2021.08.03 |
Comments