EverGiver

05-1 클래스 본문

Python/문법

05-1 클래스

친절한개발초보자 2021. 8. 10. 00:27
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