Got a question for you all...
I noticed a behaviour in python class creation that is strange, to say
the least.
When creating a class with data members but no __init__ method. Python
deals differently with data members that are muatable and immutables.
Ex:
class A(object):
stringData = "Whatever"
listData = []
instance = A()
Will have data members instantiated as expected (instance.stringData ==
"Whatever" and instance.listData == [])
instance.listData.append("SomeString")
instance.stringData = "Changed"
Now if I do
secondInstance = A()
it will come with the listData containing the SomeString appended to the
instance...
this is clearly not normal
Especially that the stringData of Second instance contains the
"Whatever" text. If the behaviour was at least consistant... but it is
not...
Am I coing nuts or is this by desing, if so it is very misleading...
The two instances are sharing the same list, but not the same string
.... I did not declare the list to be static in any way.... Why does it
behave like this ?
Éric