[Python-Dev] Why aren't more things weak referencable

Raymond Hettinger raymond.hettinger at verizon.net
Sat May 29 13:06:31 EDT 2004


Instances of classes inheriting from str, tuple, etc cannot be weakly
referenced.  Does anyone know the reason for this?
 
>>> from weakref import proxy
>>> class Object(object):
            pass
 
>>> x = Object()
>>> y = proxy(x)    # no problem here
>>> class Str(str):
            pass
 
>>> x = Str()
>>> y = proxy(x)   # but why won't this work?
 
Traceback (most recent call last):
  File "<pyshell#9>", line 1, in -toplevel-
    y = proxy(x)
TypeError: cannot create weak reference to 'Str' object
 
 
Weak referencing would be much more useful to me if it included strings,
tuples, and such.  Right now, my awkward workaround is substituting
UserString or some other wrapper class replacing inheritance with
delegation.
 
 
Raymond Hettinger
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.python.org/pipermail/python-dev/attachments/20040529/1ab23f85/attachment.html


More information about the Python-Dev mailing list