2011-02-14 10 views
6

To trochę dziwne, że liczba referencji w środowisku interaktywnym wzrasta 2 po zdefiniowaniu nowego obiektu. Stworzyłem tylko jeden obiekt, prawda?Dlaczego liczba powtórzeń wzrasta o 2 dla każdego nowego obiektu w Pythonie?

>>> 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

W jaki sposób drukujesz 'refs'? –

+0

-1: Przynajmniej dopóki nie wyjaśnisz * dlaczego * uważasz, że numer referencyjny wzrasta o 2! –

+2

@ScottGriffiths: Czy to nie oczywiste? 41832 - 41830 to 2. –

Odpowiedz

8

Twoje zadanie pracował przez utworzenie wpisu w słowniku globals() który ma v jako klucz i "v" jako wartość. To są dwa odniesienia (jeden dla klucza i jeden dla wartości), chociaż w tym przypadku prawdopodobnie oba odnoszą się do tego samego ciągu "v".