오늘은 저도 처음에 굉장히 고생을 했던 부분에 대해 한번 포스팅을 해보려 합니다.
Python 파이썬에서는 클래스를 이용하여 편하게 함수를 다룰 수 있습니다. 클래스 (class) 에 대한 포스팅은 아래를 참고 부탁드립니다.
파이썬 클래스(Class) 함수란? - 파이썬 코딩 기본 문법 (Python)
오늘은 파이썬 기본 공부를 하면서 굉장히 헷갈렸던 개념중의 하나인 클래스 (Class)에 대해 설명을 해보려 한다. 사실 나도 공부를 하면서 여러 티스토리, 블로그를 찾아보았지만 그 특유의 공대
s1mcoding.tistory.com
파이썬 클래스 (class)를 이용하면 아래와 같은 장점들을 가질 수 있습니다.
- 재사용을 하는데에 굉장히 유용하다.
- 함수를 실행을 했음에도 불구하고 함수 자신 (self)를 다시 호출할 수 있다.
- 함수들의 관리자체가 편하다.
- 변수 관리가 편하다.
class를 정의 하는 방법, 메소드
간략하게 한번 클래스에 대해서 다시 알려드리기 위해서 아래 코드를 참고 부탁드립니다.
class Simcoding:
def first_function(something):
print("Hello")
Simcoding 이라고 하는 클래스를 만들고, 그 안에 first_function 이라는 함수를 만들었습니다.
이 함수를 이용을 하려면 인스턴스를 만들어 줘야 합니다. a 라는 인스턴스를 만들어서 Simcoding 클래스 안에 있는 first_function 이라는 함수를 실행하려면 아래와 같은 코드를 작성해주면 됩니다.
class Simcoding:
def first_function(something):
print("Hello")
a = Simcoding()
a.first_function()
#### 결과값 ####
Hello
################
여기서 first_function과 같은 클래스 내의 함수를 메소드라고 부릅니다.
한 클래스 안에서 메소드는 여러개도 가능합니다.
class Simcoding:
def first_function(something):
print("Hello")
def second_function(something):
print("Hi")
def third_function(something):
print("Annyong")
self , __init__ 에 대한 이해
클래스에서 self는 단어 뜻 그대로 "자기 자신"을 뜻한다. 아래 코드를 다시 한번 보시기 바랍니다.
class Simcoding:
def __init__(self):
self.final = 0
def first_function(self,num):
self.final += num
print(self.final)
return self.final
a = Simcoding()
first_function 이라고 하는 함수에 self, num 이라고 하는 인자를 넣을 수 있도록 하였습니다. 그리고 어떠한 숫자 (num) 이 들어온다면 그 숫자를 더해서 더한값을 출력을 하는 것입니다.
class Simcoding:
def __init__(self):
self.final = 0
def first_function(self,num):
self.final += num
print(self.final)
return self.final
a = Simcoding()
a.first_function(2)
a.first_function(5)
### 결과값 ###
2
7
##############
여기에 차례대로 2와 5를 넣으면 처음에는 당연히 2가 출력이 되고, 그 다음에는 2+5인 7이 출력이 되게 됩니다.
하지만 여기서 보면 first_function 안에는 self 와 num 2개의 인자가 들어가야 하는데 a.first_function(2) 에서 보면 인자를 하나만 넣은 것을 볼 수 있습니다.
이것이 바로 self가 "자기자신" 이기 때문에 가능한 것입니다.
__init__ 이라는 코드는 initialize의 약자로 알고 있으면 좋다. 쉽게 말해 "시작"을 해주는 것인데, 여러개의 인스턴스가 있을 때에 처음에 실행이 되는 것이다. 인스턴스 1,2,3을 모두 실행을 할 경우
- init 내의 함수 실행
- 인스턴스 1 실행
- init 내의 함수 실행
- 인스턴스 2 실행
- init 내의 함수 실행
- 인스턴스 3실행
이렇게 된다고 생각을 해주면 됩니다.
오늘은 클래스의 간단한 정의와 self, __init__ 에 대해서 알아보았습니다.
사실 이 포스팅을 본다고 해도 굉장히 많이 헷갈리시는 분들이 있을 겁니다. 다른 곳에서 클래스 관련 함수를 많이 찾아보시고 직접 만들어보시는 것을 추천합니다.
'Programming > Python' 카테고리의 다른 글
파이썬 (Python) 튜플과 딕셔너리 알아보기 (Tuple & Dictionary) (1) | 2022.12.20 |
---|---|
파이썬 라이브러리 (Library)와 모듈 (Module) - 심코딩 (2) | 2022.11.10 |
파이썬 인자와 매개변수 알아보기 (Python _ Argument & Parameter) - 심코딩 (3) | 2022.11.06 |
파이썬 exe 실행 파일 Pyinstaller로 만들기 (심코딩) (0) | 2022.11.01 |
파이썬으로 달력 만들어보기! - 심코딩 (3) | 2022.10.05 |
댓글