[Twisted-Python] Why do I get a _Dereference instance?
Patrik Blommaskog
pb_twisted at olga.mine.nu
Sun Jul 6 16:20:32 MDT 2003
> > I am sure there is a logic to this, which I'd be grateful if someone
> > would like to explain to me or, better yet, point me to some nice
> > bedtime reading on the subject.
>
> Sounds like a bug, actually :)
Ouch, that is not what I wanted to hear. I experimented with it a bit
further by mutating the duck pond example, and found that:
def setCopyableState(self, state):
self.__dict__.update(state)
gives the strange behavior:
{'pond': <twisted.persisted.crefutil._Dereference instance at 0x009A1CE8>,
'broker': <twisted.spread.pb.Broker instance at 0x009AD1B0>, 'luid': 2}
While:
def setCopyableState(self, state):
self.__dict__ = state
Gives the expected:
{'pond': <cache_classes.SlaveDuckPond instance at 0x009AD8E8>, 'broker':
<twisted.spread.pb.Broker instance at 0x009AD450>, 'luid': 2}
Also, we have the peculiar case:
def setCopyableState(self, state):
self.__dict__.update(state)
self.foo = state
Which gives:
{'pond': <twisted.persisted.crefutil._Dereference instance at 0x009B5ED8>,
'foo': {'pond': <cache_classes.SlaveDuckPond instance at 0x009AD808>},
'broker': <twisted.spread.pb.Broker instance at 0x009AD1B0>, 'luid': 2}
So the item in 'foo' is dereferenced as expected, while __dict__["pond"] is
not. Go figure!
This feels like the twilight zone. Can somebody please tell me what is going
on? I have attached the code for my experiment.
- Patrik
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: cache_classes.py
URL: </pipermail/twisted-python/attachments/20030707/e0db713e/attachment.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: cache_receiver.py
URL: </pipermail/twisted-python/attachments/20030707/e0db713e/attachment-0001.ksh>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: cache_sender.py
URL: </pipermail/twisted-python/attachments/20030707/e0db713e/attachment-0002.ksh>
More information about the Twisted-Python
mailing list