P
pythonreptile
Hello all,
I have come across this issue in Python and I cannot quite understand
what is going on.
class Param():
def __init__(self, data={}, condition=False):
if condition:
data['class']="Advanced"
print data
In the previous example, I expect the variable data to be re-
initialized every time I construct an object type Param. However, when
I do the following:
Param(condition=True)
Param(condition=False)
The second call still prints {'class': 'Advanced'}
Shouldn't data be initialized to {} since it is the default in
__init__? Why would the state of data be preserved between two
independent instantiations?
Any help would be greatly appreciated.
M.
I have come across this issue in Python and I cannot quite understand
what is going on.
class Param():
def __init__(self, data={}, condition=False):
if condition:
data['class']="Advanced"
print data
In the previous example, I expect the variable data to be re-
initialized every time I construct an object type Param. However, when
I do the following:
Param(condition=True)
Param(condition=False)
The second call still prints {'class': 'Advanced'}
Shouldn't data be initialized to {} since it is the default in
__init__? Why would the state of data be preserved between two
independent instantiations?
Any help would be greatly appreciated.
M.