Or the internal memory id or whatever it's called.

2011/1/25 Izz ad-Din Ruhulessin <izzaddin.ruhules...@gmail.com>

> I think it has something to do with the physical id of the object
>
> 2011/1/25 Karim <karim.liat...@free.fr>
>
>
>> Hello All,
>>
>> Just to share on rageous bug I encounter where 2 lists which "should" to
>> be different (same id) because hold by different instances of the same class
>> are not in fact DIFFERENT, see below:
>>
>> >>> class Device():
>> ...     def __init__(self, parameters=[]):
>> ...         self.parameters = parameters
>> ...     def param(self):
>> ...         print(id(self.parameters))
>> ...
>> >>> a=Device()
>> >>> b=Device()
>> >>> a.param()
>> 140559202956568
>> >>> b.param()
>> 140559202956568
>>
>> When I discovered that I was puzzled because at the prompt:
>>
>> >>> a = []
>> >>> b = []
>> >>> id(a)
>> 140559202956496
>> >>> id(b)
>> 140559202957000
>>
>> I am not really understanding why my init in the class made it refers to
>> the same list object.
>> What is the difference with 2nd example directly at the prompt?
>>
>> By the way, this one is ok:
>>
>> >>> class Device():
>> ...     def __init__(self,parameters=None):
>> ...         self.parameters = None
>> ...         self.parameters = []
>> ...     def param(self):
>> ...         print(id(self.parameters))
>> ...
>> >>> a=Device()
>> >>> b=Device()
>> >>> b.param()
>> 140559202956496
>> >>> a.param()
>> 140559202956568
>>
>> Karim
>>
>>
>> _______________________________________________
>> Tutor maillist  -  Tutor@python.org
>> To unsubscribe or change subscription options:
>> http://mail.python.org/mailman/listinfo/tutor
>>
>
>
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to