self
파이썬 에서 단어 의 목적은 무엇입니까 ? 나는 그것이 그 클래스에서 생성 된 특정 객체를 참조한다는 것을 이해하지만, 왜 그것이 모든 함수에 매개 변수로 명시 적으로 추가되어야하는지 알 수 없습니다. 예를 들어, Ruby에서는 다음과 같이 할 수 있습니다.
class myClass
def myFunc(name)
@name = name
end
end
아주 쉽게 이해할 수 있습니다. 그러나 파이썬에서는 self
다음 을 포함해야합니다 .
class myClass:
def myFunc(self, name):
self.name = name
누구든지 이것을 통해 나에게 이야기 할 수 있습니까? 내가 경험 한 바에 따르면 내가 경험 한 것은 아니다.
@name
보다 직관적 self.name
입니까? 후자 인 IMO는보다 직관적입니다.
@foo
그리고 self.foo
더 똑같이 명시되어 암시 해상도 요구가 발생 없음 (예 : C ++에서, 인스턴스 멤버는 "암시" "명시 적"네임 스페이스를 사용하지 않고 액세스 할 수 있습니다). 유일한 차이점은 Ruby가 새로운 의미론 (@)을 도입하지만 파이썬은 그렇지 않다는 것입니다. 새로운 의미가 피할 정도의 양만큼 가치가 있는지의 여부는 순전히 주관적입니다. 그러나 대부분의 현대 언어는 여기에 개념을 도입하기로 선택합니다 (예 : php 's $ this, JS 's this).