내가 하고싶은 건 다 하는 공간
Python Object Oriented Programming(OOP) 파이썬 객체 지향 프로그래밍 클래스 객체 본문
Object Oriented Programming(OOP) 객체 지향 프로그래밍
객체 개념을 프로그래밍으로 표현. 객체는 속성 Attribute와 행동 Action을 가집니다.
예를 들어 객체가 축구선수인 경우 속성은 선수 이름, 포지션, 소속 팀 등이 되고, 행동은 공을 찬다, 패스한다 등이 됩니다.
<-> 순차적 프로그래밍
클래스 Class
객체는 클래스 Class와 인스턴스 Instance로 설계도를 만듭니다. 예시로 축구 선수 정보를 Class로 구현해보겠습니다.
1. 클래스 선언하기
명명법은 두 가지가 있는데, 먼저 snake_case는 띄어쓰기 부분에 "_"를 추가해서 명명합니다. 참고로 다른 명명법으로는 CamelCase가 있는데, 띄어쓰기 대신 대문자를 적어줍니다. 예를 들어 snake_case로는 "soccer_player"가 될 거고, CamelCase로는 "SoccerPlayer"가 됩니다. 보통 클래스명은 CamelCase, 함수명은 snake_case로 명명해줍니다.
class SoccerPlayer(object):
pass
aaa = SoccerPlayer()
bbb = SoccerPlayer()
ccc = SoccerPlayer()
구조는 위와 같습니다. 참고로 aaa, bbb, ccc는 모두 다른 객체가 됩니다.
2. 속성 Attribute 추가하기: __init__, self
속성은 __init__, self로 구성됩니다. 먼저 __init은 객체 초기화 예약 함수로 속성에 관한 정보를 저장합니다. __init__의 파라미터로 여러 속성들을 넣어주고, self로 객체를 선언합니다. 예를 들어 self.name은 self라는 객체에 소속된 name이라는 속성을 뜻하고, self.name = name에서 오른쪽에 있는 name은 파라미터로 받은 값, 할당된 값을 의미합니다.
class SoccerPlayer(object):
def __init__(self, name : str, position : str, back_number : int)
self.name = name
self.position = position
self.back_number = back_number
이렇게 선언해주면 클래스 정보가 메모리에 올라가게 되므로 클래스를 자유자재로 사용할 수 있습니다. 이게 설계도가 되는데, 각 파라미터의 type을 명시해주면 좋습니다.
Magic Method
Magic Method인 __는 1) 특수한 예약함수 또는 2) 함수명을 자동으로 변경(맹글링)에 사용되며, 예로는 __main__, __str__ 등이 있습니다.
def __str__(self): # 문자열 출력 함수
return "Hello, My name is %s. My back number is %d." %(self.name, self.back_number)
def __add__(self, other): # 덧셈 함수
return self.name + other.name
3. 행동 Action(Method) 구현하기: 함수로 구현
함수에 반드시 self를 추가해야 클래스 함수로 인정됩니다. 클래스 함수를 사용할 때에는 self명.함수명(파라미터) 형태로 이용합니다.
참고로 객체의 값을 변경할 때 단순히 son.back_number = 10으로 바꾸는 것보다 이렇게 함수를 만들어서 바꾸는 것이 좋다고 합니다.
'파이썬' 카테고리의 다른 글
상속, 다형성, 가시성 Python Object Oriented Programming(OOP) 파이썬 객체 지향 프로그래밍 (0) | 2025.07.06 |
---|