Hi,
I have a class and I am trying to set the instance varirable 'variables'
(also tried different names). The variable gets initialized by
default-value parameter of the constructor. When I change the variable and
call the constructor again, the default value changes !!! Is this supposed
to happen? See code and example below:
class url:
def __init__(self,l ink,vars={}):
self.link=link
print "vars:",var s
if hasattr(self,'v ars'):
print "self.variables :",self.variabl es
self.variables= vars
print "self.variables :",self.variabl es
def set_var(self,na me,value):
self.variables[name]=value
[color=blue][color=green][color=darkred]
>>> from generator import url
>>> u=url('image')[/color][/color][/color]
vars: {}
self.variables: {}[color=blue][color=green][color=darkred]
>>> u.set_var('a',5 )
>>> v=url('test')[/color][/color][/color]
vars: {'a': 5}
self.variables: {'a': 5}
See that 'vars' gets the old value of 'variables' passed? How can this be???
I am using python version 2.3.5
Eddy
I have a class and I am trying to set the instance varirable 'variables'
(also tried different names). The variable gets initialized by
default-value parameter of the constructor. When I change the variable and
call the constructor again, the default value changes !!! Is this supposed
to happen? See code and example below:
class url:
def __init__(self,l ink,vars={}):
self.link=link
print "vars:",var s
if hasattr(self,'v ars'):
print "self.variables :",self.variabl es
self.variables= vars
print "self.variables :",self.variabl es
def set_var(self,na me,value):
self.variables[name]=value
[color=blue][color=green][color=darkred]
>>> from generator import url
>>> u=url('image')[/color][/color][/color]
vars: {}
self.variables: {}[color=blue][color=green][color=darkred]
>>> u.set_var('a',5 )
>>> v=url('test')[/color][/color][/color]
vars: {'a': 5}
self.variables: {'a': 5}
See that 'vars' gets the old value of 'variables' passed? How can this be???
I am using python version 2.3.5
Eddy
Comment