클라스란 무엇이며 왜 필요할까요? 다음과 같이 쿠키 박스에 쿠키를 담는 경우를 통해 살펴보도록 하겠습니다.
쿠키 박스에 쿠키 담기
쿠키를 만들어 박스에 담는 함수가 있다고 해보겠습니다.
def makingCookie(*cookies):
box = []
for cookie in cookies:
box.append(cookie)
print(box)
makingCookie('whiteCookie', 'blackCookie')
# ['whiteCookie', 'blackCookie']
makingCookie('whiteCookie', 'brownCookie')
# ['whiteCookie', 'brownCookie']
이렇게 하면 박스에는 각 쿠기가 담기지만, 문제는 함수를 호출할 때마다 box
가 새로운 쿠키로 대체된다는 것입니다.
다음과 같이 두 객체의 id
값을 확인해보면 기존의 박스가 새로운 박스로 대체되었다는 것을 확인 수 있습니다.
print(id(a))
# 4363114144
print(id(b))
# 4363114144
print(id(a) == id(b))
# True
각각의 독립적인 박스를 만들고 이에 서로 다른 쿠키를 담으려면 어떻게 해야 할까요? 여기서 바로 클라스를 활용할 수 있습니다.
class cookieBox:
def makingCookie(self, *cookies):
box = []
for cookie in list(cookies):
box.append(cookie)
print(box)
cookieBox1 = cookieBox()
cookieBox2 = cookieBox()
cookieBox1.makingCookie('whiteCookie', 'blackCookie')
# ['whiteCookie', 'blackCookie']
cookieBox2.makingCookie('whiteCookie', 'brownCookie')
# ['whiteCookie', 'brownCookie']
print(id(cookieBox1))
# 4487434192
print(id(cookieBox2))
# 4487434288
print(id(cookieBox1) == id(cookieBox2))
# False
이렇게 하면 서로 다른 박스에 각 쿠기가 담겼다는 것을 확인할 수 있습니다. 즉, 각 쿠키 박스와 쿠키가 독립적으로 존재하게 됩니다.
클라스 설명
이제 클라스를 이해할 수 있습니다. 클라스는 하나의 쿠키 박스라고 할 수 있습니다. 각 박스는 독립적으로 존재하며, 서로 다른 쿠키를 담아 보관할 수 있습니다.
정리하자면, 클라스란 동일한 작업을 수행할 수 있는 하나의 틀이자 구조입니다. 이러한 틀로 진행된 작업의 결과물인 박스는 객체이며, 각 박스(객체)는 독립적입니다.
'개발 > Python' 카테고리의 다른 글
파이썬 클라스 설명 (2) 인스턴스와 메소드란? (0) | 2021.12.13 |
---|---|
파이썬 함수 설명 (2) 변수와 스코프 (0) | 2021.12.09 |
파이썬 함수 설명 (1) 입력과 출력 (0) | 2021.12.08 |