2012-06-26 4 views
0

테이블 (목록 목록)을 보유한 클래스가 있습니다. 이 클래스는 sql과 비슷한 rowpointer를 반환해야합니다. 이 행 포인터에 대해서는 weakref.proxy으로 테이블 행 (목록)을 ref로 주 싶습니다. 그러나 행 포인터에 추가 기능을 추가하고 싶습니다. __getitem__ 메서드를 덮어 쓰면 열 이름을 통해 액세스 할 수 있습니다.weakref 프록시 확장/복사 동작

동일한 동작 (내 개체에 대한 참조를 참조 된 개체로 쉽게 변환)을 얻는 쉬운 방법이 있습니까? 아니면 모든 특수 메서드를 다시 구현해야합니까?

쉬운 방법으로 나는 상속을 생각할 수있다. (그러나 weakref.ProxyType에 관한 문서를 찾지 못했기 때문에 나는 그걸 상속하려고 시도하지도 않는다. (초기화하는 방법?) 다른 옵션은 심지어 특별한 방법을 정의하는 것일 수도있다. . 항상

답변

0

좀 더 Iresearched (__xxx__) 함수는 this 차종 불가능한 것 그에도 언급 된 객체에 대한 호출 "특별한"리디렉션이 발견 :

http://code.activestate.com/recipes/496741-object-proxying/ 을 http://pypi.python.org/pypi/ProxyTypes

그래서 짧은에, 하나는 (내가 활성 상태에 recipi 더 나은 생각) 모든 통화를 전달할 수 있습니다,하지만 난 구현하는 방법을 발견하지 않았습니다 :

$a = proxy([1,2,3]) 
$b = a 
$print type(b) 
>>list 
난 그냥 객체 작업을위한 정착 것

이십 기가 바이트 꽤 많은 것은 목록처럼 행동합니다.