[ python-Bugs-1506799 ] list bug

SourceForge.net noreply at sourceforge.net
Thu Jun 15 19:14:04 CEST 2006


Bugs item #1506799, was opened at 2006-06-15 13:03
Message generated for change (Settings changed) made by tim_one
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1506799&group_id=5470

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
>Group: Not a Bug
>Status: Closed
>Resolution: Invalid
Priority: 5
Submitted By: SPlyer (splyer)
Assigned to: Nobody/Anonymous (nobody)
Summary: list bug

Initial Comment:
When i define class with list member(in class body, not
in __init__ or other method) that list become common
for all instances of the class. So when i change list
member in one instance it also will changed in all the
other instances. OS - Windows XP(SP2)

[code]
class TestClass:
    t = []
    def __init__ (self):
        pass

a = TestClass()
b = TestClass()
a.t.append(123)
print b.t
[/code]

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

>Comment By: Tim Peters (tim_one)
Date: 2006-06-15 13:14

Message:
Logged In: YES 
user_id=31435

Closing as Not-a-Bug.  That's exactly what should happen. 
If you want a different `t` per instance, use a different
`t` per instance instead of sharing a common `t` across all
instances  -- you simply got what you asked for here.  If
that's not what you want, then, e.g., put "self.t = []" in
your __init__ method.

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

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1506799&group_id=5470


More information about the Python-bugs-list mailing list