newbie OO question

Jeremy Winters teethofgold at yahoo.com
Thu Apr 20 14:50:56 EDT 2006


class SegmentValue:
	def
__init__(self,seg=[0,0,0,0,0,0],value=0,description=""):
		self.segment=seg
		self.value=value
		self.description=description

#that's my class! note the default of a 6 item list
for the seg parameter... which is then bound(?) to the
segment attribute of the instance...

now here's the session I just did

>>> from SegmentValue import *
>>> a=SegmentValue([1,2,3,4,5,6],22,"segment a")
>>> b=SegmentValue()
>>> c=SegmentValue() 
>>> b.segment[0]=1
>>> b.segment
[1, 0, 0, 0, 0, 0]
>>> c.segment
[1, 0, 0, 0, 0, 0]
>>> a.segment
[1, 2, 3, 4, 5, 6]

so... what I'm seeing here is that when I explicitly
set seg during instantiation... it creates a unique
sequence that can be manipulated without affecting
other instances... but if I instantiate using the
default... it seems to refer back to the default when
maniuplating the segment attribute.

in a continuation of the session...

>>> d=SegmentValue()
>>> d.segment
[1, 0, 0, 0, 0, 0]

...you'll note that any new instances now refer to the
*modified default sequence*.

what is going on here?  how do I instantiate without
explicitly defining a new sequence each time? or is
this even possible?

thanks in advance,
jeremy

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 



More information about the Python-list mailing list