Some code I have a problem with:
# a connector
class conn():
def __init__(self, name):
self.name = name
# a device base class
class imper_dev():
names = []
conns = {}
def __init__(self):
for name in self.names:
self.conns[name] = conn(name)
# a real device
class dev(imper_dev):
names = ['a']
# some instances of it
d1 = dev()
d2 = dev()
>>> d1.conns['a']
<__main__.conn object at 0x7fd68871c630>
>>> d2.conns['a']
<__main__.conn object at 0x7fd68871c630>
I am a little surprised by this behavior. My intention is to create instances of dev()
with independent connectors. Why have both instances d1
and d2
the same reference for conns['a']
?