__slots__ and copy again: why does it work?
fortepianissimo
fortepianissimo at gmail.com
Mon Dec 26 17:39:42 EST 2005
I remember from painful experience that copy.copy() won't really copy
__slots__ members. But I have trouble explaning why the following code
works:
--- START---
#!/usr/bin/env python
import copy
class Foo (object):
__slots__ = 'i'
def __init__ (self):
self.i = 10
class Bar (Foo):
__slots__ = 'j'
def __init__ (self):
self.j = 20
f1 = Foo()
f2 = copy.copy(f1)
print f2.i # why does it work?
b1 = Bar()
b2 = copy.copy(b1)
print b2.j # why does it work?
print b2.i # doesn't work, as expected
--- END---
Any insight is welcome!
More information about the Python-list
mailing list