2011-02-14 3 views
6

Es un poco raro para mí que el número de referencia en el entorno interactivo aumente 2 después de que se defina un nuevo objeto. Creé solo un objeto, ¿no?¿Por qué los refs aumentan 2 por cada nuevo objeto en Python?

>>> v 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
NameError: name 'v' is not defined 
[41830 refs] 
>>> v = "v" 
[41832 refs] 
+6

¿Cómo está imprimiendo 'refs'? –

+0

-1: Al menos hasta que explique * por qué * ¡cree que el número de referencia aumenta en 2! –

+2

@ScottGriffiths: ¿No es obvio? 41832 - 41830 es 2. –

Respuesta

8

Su tarea trabajado creando una entrada en el diccionario globals() que tiene v como una llave y "v" como un valor. Son dos referencias (una para la clave y otra para el valor), aunque en este caso probablemente ambas se refieran a la misma cadena "v".

Cuestiones relacionadas