파이썬 객체 지향 프로그래밍 - Attributes & Methods (2)
Page content
1줄 요약
- 클래스를 직접 구현하면서
Attributes & Methods
의 차이점에 대해 이해한다.
개요
- 기본적인 클래스 등을 작성해본다.
class Customer:
pass
class <name>:
클래스의 이름을 정의함- 만약,
pass
를 입력하면 하나의empty
클래스를 생성하는 것이다. - 이렇게 생성된 클래스는 여러개의 인스턴스를 만들 수 있음
c1 = Customer()
c2 = Customer()
Methods 추가
- 이번에는 간단한 method를 추가한다.
class Customer:
def identify(self, name):
print("저는 소비자 " + name + " 입니다.")
- 함수 작성 시에는 self를 가장 먼저 입력한다.
cust = Customer()
cust.identify("Evan")
저는 소비자 Evan 입니다.
- Self를 어떻게 이해하면 좋을까? 다양한 프로그래밍 설명이 있지만, 직관적으로 표현하면, instance 자기 자신이라고 표현하는 것이 맞다.
- cust.identify(“Evan”)는 Customer.identify(cust, “Evan”)이라고 해석하는 것과 동일하다.
Attributes 추가
- 이번에는 Attributes를 추가한다.
class Customer:
def set_name(self, new_name):
self.name = new_name
- set_name이 호출 될 때,
.name
도 같이 호출 된다. - 조금더 구체적으로 살펴보면 다음과 같다.
cust2 = Customer() # 이 때에는 .name이 존재하지 않는다.
cust2.set_name("Evan") # 이 때에는 .name이 생성되며, "Evan" 이름이 저장된다.
print(cust2.name) # 정상적으로 호출이 된다
Evan
- 이번에는 identify 메서드 형식을 바꾸도록 한다.
class Customer:
def set_name(self, new_name):
self.name = new_name
def identify(self):
print("저는 소비자 " + self.name + " 입니다.")
- idenfity( ) 내부에 name 인자는 없었졌다. 그리고, print( ) 내부에 있는 name은 self.name으로 변경 된다.
cust = Customer()
cust.set_name("Evan")
cust.identify()
저는 소비자 Evan 입니다.
References
- Object-Oriented Programming in Python Retrieved from https://www.datacamp.com/courses/object-oriented-programming-in-python