Python의 객체 지향 프로그래밍
Alex Yarosh
Content Quality Analyst @ DataCamp
selfself.___로 속성 참조
class MyClass:
# 클래스 내부의 함수 정의
# 첫 번째 인자는 self
def my_method1(self, other_args...):
# 여기서 작업 수행
def my_method2(self, my_attr):
# 할당으로 속성 생성
self.my_attr = my_attr
...
__init__() 메서드는 객체가 생성될 때마다 호출됩니다.class Customer: def __init__(self, name): self.name = name # <--- .name 속성을 만들고 name 매개변수로 설정 print("The __init__ method was called")cust = Customer("Lara de Silva") #<--- __init__ 가 암묵적으로 호출됨 print(cust.name)
The __init__ method was called
Lara de Silva
class Customer: def __init__(self, name, balance): # <-- balance 매개변수 추가self.name = name self.balance = balance # <-- balance 속성 추가 print("The __init__ method was called")cust = Customer("Lara de Silva", 1000) # <-- __init__ 호출됨 print(cust.name) print(cust.balance)
The __init__ method was called
Lara de Silva
1000
class Customer: def __init__(self, name, balance=0): #<-- balance 기본값 설정self.name = name self.balance = balance print("The __init__ method was called")cust = Customer("Lara de Silva") # <-- balance를 명시하지 않음print(cust.name) print(cust.balance) # <-- 속성은 어쨌든 생성됨
The __init__ method was called
Lara de Silva
0
class MyClass:
def my_method1(self, attr1):
self.attr1 = attr1
...
def my_method2(self, attr2):
self.attr2 = attr2
...
obj = MyClass()
obj.my_method1(val1) # <-- attr1 생성
obj.my_method2(val2) # <-- attr2 생성
class MyClass: def __init__(self, attr1, attr2): self.attr1 = attr1 self.attr2 = attr2 ...# 모든 속성이 생성됨 obj = MyClass(val1, val2)
__init__()에서 속성 초기화__init__()에서 속성 초기화클래스는 CamelCase, 함수/속성은 lower_snake_case
__init__()에서 속성 초기화클래스는 CamelCase, 함수/속성은 lower_snake_case
self는 self로 유지class MyClass:
# 동작하긴 하지만 권장되지 않음
def my_method(kitty, attr):
kitty.attr = attr
__init__()에서 속성 초기화클래스는 CamelCase, 함수/속성은 lower_snake_case
self는 selfclass MyClass:
"""이 클래스는 아무 작업도 하지 않습니다"""
pass
Python의 객체 지향 프로그래밍