파이썬 객체 지향 프로그래밍 - 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