Basic Class/Instance Question

Siah siasookhteh at gmail.com
Wed May 23 07:07:19 EDT 2007


Ready to go insane here. Class A, taking on a default value for a
variable. Instantiating two separate objects of A() gives me a shared
val list object. Just see the example bellow:


class A(object):
    def __init__(self, val=[]):
        self.val=val

obj1 = A()
obj2 = A()

print obj1 is obj2               # False - as expected
print obj1.val is obj2.val     # True! - Why... oh god WHY


-----------
Using python 2.4. Is this a bug with this version of python? How can I
trust the rest of the universe is still in place? Could she still like
me? Many questions I have. Lets start with the python problem for now.

Thanks,
Sia




More information about the Python-list mailing list