파이썬에서 __init__이라는 이상한 이름의 함수를 봤습니다. 밑줄 친 함수가 자동으로 실행된다는 것은 알지만, 그 존재의 구체적인 의미는 모르겠습니다..
오늘 봤습니다. > Chapter 11 객체 지향 프로그래밍에서는 이를 다음과 같이 소개합니다. "C++/Java/C# 프로그래머를 위한 참고 사항
Python의 모든 클래스 멤버(데이터 멤버 포함)는 공개이고 모든 메서드는 유효합니다.
한 가지 예외가 있습니다. __privatevar와 같이 이중 밑줄이 앞에 붙은 데이터 멤버 이름을 사용하는 경우 Python의 이름 관리 시스템은 이를 효과적으로 개인 변수로 처리합니다. 클래스나 개체 내에서만 사용하려면 밑줄 하나를 접두사로 붙여야 하며 다른 모든 이름은 공개되어 다른 클래스/객체에서 사용할 수 있습니다. 이는 단지 규칙일 뿐이며 Python에서는 필요하지 않습니다(다음과 다릅니다). 이중 밑줄 접두사)
또한 __del__ 메서드는 소멸자의 개념과 유사합니다. "
갑자기 클래스에서 __init__이 사용된다는 사실이 떠올랐습니다. 생성자는 다음과 같이 작성되었습니다. 고정된 방식인 것 같지만 실제로는 의미가 있습니다
def __init__(self, name): '''Initializes the person's data.''' self.name = name print '(Initializing %s)' % self.name # When this person is created, he/she # adds to the population Person.population += 1
name 변수는 객체에 속하므로(자체 할당을 사용함) 객체입니다.
self.name 변수의 값은 객체별로 지정되어 객체의 변수로서의 성격을 나타냅니다.