Duplicar posible:
Python “is” operator behaves unexpectedly with integersidentidad Python: trastorno de personalidad múltiple, necesita código de encogimiento
yo nos topamos con el siguiente Python weirdity:
>>> two = 2
>>> ii = 2
>>> id(two) == id(ii)
True
>>> [id(i) for i in [42,42,42,42]]
[10084276, 10084276, 10084276, 10084276]
>>> help(id)
Help on built-in function id in module __builtin__:
id(...)
id(object) -> integer
Return the identity of an object. This is guaranteed to be unique among
simultaneously existing objects. (Hint: it's the object's memory address.)
- Es cada numbe ¿un objeto único?
- Son variables diferentes que tienen los mismos valores elementales (por ejemplo, dos, ii) el mismo objeto?
- ¿Cómo es la identificación de un número generado por Python?
- En el ejemplo anterior, ¿hay dos y dos punteros a una celda de memoria con el valor 2? Eso sería extremadamente extraño.
Ayuda a resolver esta crisis de identidad.
Algunos más weirdities:
>>> a,b=id(0),id(1)
>>> for i in range(2,1000):
a,b=b,id(i)
if abs(a-b) != 12:
print('%i:%i -> %i' % (i,a,b))
El código anterior examina si los id de enteros consecutivos también son consecutivas, e imprime anomalías:
77:10083868 -> 10085840
159:10084868 -> 10086840
241:10085868 -> 10087840
257:10087660 -> 11689620
258:11689620 -> 11689512
259:11689512 -> 11689692
260:11689692 -> 11689548
261:11689548 -> 11689644
262:11689644 -> 11689572
263:11689572 -> 11689536
264:11689536 -> 11689560
265:11689560 -> 11689596
266:11689596 -> 11689656
267:11689656 -> 11689608
268:11689608 -> 11689500
331:11688756 -> 13807288
413:13806316 -> 13814224
495:13813252 -> 13815224
577:13814252 -> 13816224
659:13815252 -> 13817224
741:13816252 -> 13818224
823:13817252 -> 13819224
905:13818252 -> 13820224
987:13819252 -> 13821224
Tenga en cuenta que un patrón emerge de 413 en adelante. Tal vez se deba a alguna contabilidad vudú al comienzo de cada nueva página de memoria.
¿Qué importancia tiene? ¿Porque lo preguntas? ¿Qué problema causa esto? No entiendo la pregunta. Por favor, aclara lo que está roto. –
@ S.Lott Está tratando de profundizar su comprensión, ¿qué pasa con eso? A veces el viaje vale más que el destino. – Simon
No entiendo la pregunta. No puedo ayudar a profundizar mi comprensión si la pregunta es opaca. –