MySQLDb는 약한 프록시를 사용하여 커서와 연결 간의 순환 종속성을 방지합니다.weakproxy가 파이썬에서 항상 동등성을 유지하지 않는 이유는 무엇입니까?
그러나 weakref에 대한 설명서에서 동등성을 테스트 할 수 있다고 기대할 수 있습니다. 아직 :
In [36]: interactive.cursor.connection.thread_id()
Out[36]: 4267758
In [37]: interactive.web_logic.conns.primary.thread_id()
Out[37]: 4267758
In [38]: interactive.cursor.connection == interactive.web_logic.conns.primary
Out[38]: False
In [39]: interactive.cursor.connection
Out[39]: <weakproxy at 0x3881c60 to Connection at 0x94c010>
In [40]: interactive.web_logic.conns.primary
Out[40]: <_mysql.connection open to 'xendb01' at 94c010>
연결이 동일한 지 어떻게 알 수 있습니까?
weakproxy가 아니라 약점입니다. weakproxy 구현의 약점은 무엇입니까? – rhettg
아, weakref.proxy를 의미합니다 ("weakproxy"가 아님, 적어도 Python 표준 lib에는 없 음). 원본 개체를 검색하는 방법은 노출되지 않는 것으로 보입니다. 이는 형식의 주요 제한 사항처럼 보입니다. 그것은 감독되어야합니다. 이 제한은 완전히 불필요한 것처럼 보입니다. 객체가 프록시인지 (obj .__ str __()을 파싱하려고 시도하는 것보다 짧은 지) 확인할 수있는 방법조차 없다. 이 유형은 완전히 겉으로 드러난 것처럼 보이지 않습니다. –
그렇다면 "obj1 .__ dict__은 obj2 .__ dict__"입니다. ("30 초마다 하나의 주석 만 게시 할 수 있습니다."이 사이트는 때때로 자극적입니다.) –