__ init __과 헷갈릴 수 있다

한마디로

class Student:
	def __init__(self, name, age):
		self.name = name
		self.age = age
		print(f"student's name is {self.name} and age is {self.age}")
	def __call__(self, teacher):
		self.teacher = teacher
		print(f"{self.name}'s teacher is {self.teacher}")

std1 = Student('james', 15)
std1('emma')

Untitled

결과.

std1 인스턴스 생성시에는 __init __이, 이후 std1 호출시에 __ call __이 실행되는 것을 볼 수 있다.