[EMAIL PROTECTED] wrote:
Hi,

How do python instances work?
Why does the code at the end of my posting produce this output:

list in a:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list in b:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

instead of

list in a:
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list in b:
[]

----------------------------

class MyClass:
    list = []

    def add(self, x):
        self.list.append(x)

    def printer(self):
        print self.list

a = MyClass()
b = MyClass()

for n in range(10):
    a.add(n)

print "list in a:"
a.printer()
print "list in b:"
b.printer()

/H


because list is a class member not an instance member (not sure about the vocabulary) if in __init__ you set self.list=[] you'll get the result you want! By declaring list=[] in the class it is shared between all instances!


--
EuGeNe

[----
www.boardkulture.com
www.actiphot.com
www.xsbar.com
----]
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to