클래스 구성: 속성과 메서드

Python 객체 지향 프로그래밍 입문

George Boorman

Curriculum Manager, DataCamp

Customer 클래스

class Customer:

# 클래스 코드는 여기에 작성
pass
  • class <name>:로 클래스 정의 시작
  • class 내부 코드는 들여쓰기됨
  • 빈 클래스를 만들려면 pass 사용
c_one = Customer()
c_two = Customer()
  • ClassName()으로 ClassName 클래스의 객체 생성
Python 객체 지향 프로그래밍 입문

클래스에 메서드 추가

class Customer:  

def identify(self, name): print("I am Customer " + name)
  • 메서드 정의 = 클래스 내부의 함수 정의
  • 메서드 정의의 첫 인자로 self 사용
cust = Customer()
cust.identify("Laura")
I am Customer Laura
  • 객체에서 메서드를 호출할 때는 self를 넘기지 않습니다
Python 객체 지향 프로그래밍 입문
class Customer:  
    def identify(self, name):
        print("I am Customer " + name)

cust = Customer()
cust.identify("Laura")

self란?

  • 클래스는 템플릿입니다
  • self는 모든 메서드의 첫 번째 인자여야 합니다
  • self는 (아직 생성되지 않은) 객체를 가리킵니다
  • cust.identify("Laura")Customer.identify(cust, "Laura")로 해석됩니다
Python 객체 지향 프로그래밍 입문

속성이 필요합니다

  • OOP는 데이터와 그 데이터를 다루는 메서드를 묶습니다
    • Customer의 이름은 속성이어야 합니다

 

$$\text{\Large{속성은 메서드에서 할당(=)으로 생성됩니다}}$$

Python 객체 지향 프로그래밍 입문

속성 추가하기

class Customer:  
    # 객체의 name 속성을 new_name으로 설정
    def set_name(self, new_name):

# 값을 할당하여 속성 생성 # set_name이 호출되면 .name이 생성됨 self.name = new_name
# 객체 생성 # 여기서는 .name이 아직 없음 cust = Customer()
# .name이 생성되고 "Lara de Silva"로 설정됨 cust.set_name("Lara de Silva")
print(cust.name)
Lara de Silva
Python 객체 지향 프로그래밍 입문

이전 버전

class Customer:  



    # 매개변수 사용
    def identify(self, name):
        print("I am Customer" + name)
cust = Customer()

cust.identify("Eris Odoro") 
I am Customer Eris Odoro 

새 버전

class Customer:  
   def set_name(self, new_name):
       self.name = new_name

# 객체 자체의 .name 사용 def identify(self): print("I am Customer" + self.name)
cust = Customer()
cust.set_name("Rashid Volkov")
cust.identify()
I am Customer Rashid Volkov
Python 객체 지향 프로그래밍 입문

연습해 봅시다!

Python 객체 지향 프로그래밍 입문

Preparing Video For Download...