次のコードを検討してください。
from weakref import ref
class Klass(object):
# __slots__ = ['foo']
def __init__(self):
self.foo = 'bar'
k = Klass()
r = ref(k)
動作しますが、コメントを外すとPython 2.6__slots__
で壊れます。TypeError: "cannot create weak reference to 'Klass' object"
__slots__
これがPython固有の制限なのか、それともバグなのか、誰か知っていますか? それを回避する方法は?