하다보니
[python]클래스 본문
파이썬 클래스 사용 메리트
- 글로벌 변수를 없애고, 모든 변수를 어떠한 영역에 소속시킨다.
- 몇 번이고 재사용할 수 있다.
- 코드의 수정을 최소화한다.
- 함수 실행 중에 함수 자신을 다시 호출하는 처리 등이 가능하게 한다.
클래스와 인스턴스
- 파이썬의 클래스에 정의된 데이터나 함수를 사용하기 위해 인스턴스를 생성할 필요가 있다. 인스턴스란, 클래스를 실체화한 것이다. 하나의 클래스에 대해서 인스턴스는 여러개 생성하는 것도 가능하므로, 각각의 인스턴스에 각각 다른 데이터를 가지도록 할 수 있다.
class SomeClass:
def __init__(self,something):
self.something = something
def some_function(self):
print(self.something)
a=SomeClass("some_value")
a.some_function()
위의 코드에서 a가 인스턴스가 된다. 즉, 해당 클래스의 인스턴스가 a에 할당되어 있다고 할 수 있다. 인스턴스를 생성하는 것으로 클래스 내에 기재된 함수를 호출할 수 있다.
클래스와 메소드
- 클래스 내에 기재되어 있는 함수를 다른 말로 메소드라고 부른다. 클래스 내에 여러 개의 메소드를 정의하는 것도 물론 가능하다.
class some_class: def __init__(self,something): self.something = something def some_function1(self):#메소드1 print(self.something) def some_function2(self):#메소드2 return self.something
self의 역할
- self는 객체의 인스턴스 그 자체를 말한다. 즉, 객체 자기 자신을 참조하는 매개변수인 셈이다.
__init__의 이해
self와 나란히 클래스 내에 등장하는 __init__에 대해 알아보자.
- constructor라고 불리는 초기화를 위한 함수(메소드)
- 인스턴스화를 실시할 때 반드시 처음에 호출되는 특수한 함수
__init__()은 반드시 첫 번째 인수로 self를 지정해야한다. self에는 인스턴스 자체가 전달되어 있다. 이로 인해, 초기화 메소드 내에 인스턴스 변수를 작성하거나, 참고하는 것이 가능해진다. 클래스를 생성할 때에 지정한 인수는 초기화 메소드의 2번째부터 작성해 나가면 된다.
class MyStatus:
def __init__(self,age,name,height,weight):
self.age = age
self.name = name
self.height = height
self.weight = weight
def print_name(self):
print(self.name)
def print_age(self):
print(self.age)
def print_height(self):
print(self.height)
def print_weight(self):
print(self.weight)
a = my_status(34,"yamada",170,78)
'프로그래밍 언어 > Python' 카테고리의 다른 글
[Python] 파이썬 리스트 모든 조합 구하기 (0) | 2022.04.22 |
---|---|
아스키코드 (0) | 2022.02.09 |
deque (0) | 2022.02.08 |
집합 (0) | 2021.12.27 |
2차원 리스트 원소 포함 여부 (0) | 2021.12.27 |