[ python-Bugs-1652387 ] Nested Objects scope problem

SourceForge.net noreply at sourceforge.net
Tue Feb 6 08:07:16 CET 2007


Bugs item #1652387, was opened at 2007-02-05 13:35
Message generated for change (Settings changed) made by kkelchev
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=105470&aid=1652387&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: Build
Group: Python 2.5
>Status: Open
Resolution: Invalid
Priority: 5
Private: No
Submitted By: kkelchev (kkelchev)
Assigned to: Nobody/Anonymous (nobody)
Summary: Nested Objects scope problem

Initial Comment:
K = MyObj()
K.Lines.append('First line to Obj "K"')
K.Lines.append('Second line to Obj "K"')
L = MyObj()
L.Lines.append('First line to Obj "L"')
print 'Lines from Obj "K"',K.Lines
print 'Lines from Obj "L"',L.Lines


Result is:
[Dbg]>>> 
Lines from Obj "K" ['First line to Obj "K"', 'Second line to Obj "K"', 'First line to Obj "L"']
Lines from Obj "L" ['First line to Obj "K"', 'Second line to Obj "K"', 'First line to Obj "L"']
>>> 

Why data appended into nested list filed “Lines”  into different object “K” and “L”  appears in both objects ?



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

Comment By: Georg Brandl (gbrandl)
Date: 2007-02-05 20:54

Message:
Logged In: YES 
user_id=849994
Originator: NO

Yes, this is exactly what I had written in my previous answer.

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

Comment By: kkelchev (kkelchev)
Date: 2007-02-05 20:34

Message:
Logged In: YES 
user_id=1711016
Originator: YES

Sorry :(
I forgot to paste definision of Class MyObj
yes it is:

class MyObj:
    Lines = []
--------------------------------------
is this a bug ? 
Or always in Python data in nested object are shared between all objects
from same class

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

Comment By: Georg Brandl (gbrandl)
Date: 2007-02-05 18:31

Message:
Logged In: YES 
user_id=849994
Originator: NO

Sadly you didn't attach the definition of the class "MyObj".

I assume it is like this:

class MyObj:
    Lines = []

In this case, the Lines list object is shared by all instances of MyObj.
Please post to the python-list mailing list for further questions about
this behavior.

If your bug is different, please feel free to reopen this.

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

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


More information about the Python-bugs-list mailing list