__init__
•
인스턴스를 만들 때 호출되는 메서드
•
인스턴스를 초기화하는 메서드 = 생성자
•
객체가 생성될 때 자동으로 호출
•
self, 매개변수를 이용해 인스턴스 속성을 초기화
class Person:
def __init__(self):
self.name = '홍길동'
def greeting(self):
print(f'{self.name}입니다. 반가워요.')
james = Person()
james.greeting()
Python
복사
self
•
python에서 self는 인스턴스 자기 자신을 의미
•
클래스 내부에서 메서드를 호출할 때 호출한 인스턴스 자기 자신을 전달
•
메서드의 첫 번째 매개변수는 호출한 인스턴스 자기 자신을 전달받는 매개변수
•
self는 관례적으로 사용되는 이름이며 다른 이름을 사용해도 무방
•
self를 사용하는 이유는 클래스의 메서드에서 클래스의 속성에 접근하기 위함
•
self를 사용하지 않으면
◦
클래스의 속성에 접근할 수 없음
◦
메서드는 인스턴스 속성에 접근할 수 없음
◦
메서드는 클래스 속성에 접근할 수 없음
◦
메서드는 다른 메서드를 호출할 수 없음
비공개 속성
class Person2:
def __init__(self, name, age, address, wallet):
self.name = name
self.age = age
self.address = address
self.__wallet = wallet # 변수 앞에 __를 붙여서 비공개 속성으로 만듦
# 클래스 내부의 메서드에만 접근 가능
john = Person2('John', 34, 'Seoul', 10000)
john.__wallet -= 10000 # 클래스 외부에서 비공개 속성에 접근하면 에러 발생
# 내부에서만 접근 가능
Python
복사