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