나는 다음과 같은 예는 약간 놀라운 발견 : 파이썬 방법 조회 규칙은
>>> class Foo:
def blah(self):
pass
>>> f = Foo()
>>> def bar(self):
pass
>>> Foo.bar = bar
>>> f.bar
<bound method Foo.bar of <__main__.Foo object at 0x02D18FB0>>
나는 바인딩 방법은 각각의 특정 인스턴스와 관련된 것으로, 건설에 그것을 배치 할 것으로 예상.
는 그러나 과정에 대한 이해가 명확하게 결함이
>>> g = Foo()
>>> g.blah is f.blah
False
: 참, 그리고 - 기본 기능에 전달하는 예를 알 수 있도록 바운드 방법은, 각 인스턴스에 대해 다르게해야한다는 것을 논리적 보인다 왜냐하면 클래스 속성에 함수를 할당하면 이 이미 다음에 의해 생성 된 인스턴스에 넣을 것이라고 기대할 수 없기 때문입니다..
- 왜 인스턴스에 소급 적용 클래스에 기능을 할당 않습니다 -
그래서, 내 질문은 두 배입니다? 이를 실제로 만드는 실제 조회 규칙 및 프로세스는 무엇입니까?
- 언어에 의해 보증되는 것이 있습니까? 아니면 일어나는 일입니까? 당신은 당신의 마음을 날려 할
아, 맞습니다.나는 깨닫지 못했거나 인스턴스를'__get__ '에 전달한 디스크립터 프로토콜을 잊었다. 그게 저에게 모든 관련 문서를 읽도록 가르쳐 줄 것입니다. :-) – lvc
cf http://wiki.python.org/moin/FromFunctionToMethod에 대한 자세한 내용은 여기를 참조하십시오. –