Reference counts
Duncan Booth
duncan at NOSPAMrcp.co.uk
Thu May 24 05:28:13 EDT 2001
Helen Dawson <helend at accessone.com> wrote in
news:3B0CB0B6.EA9D2EF1 at accessone.com:
>
>>>> import sys
>>>> sys.getrefcount(0) 1495
>>>> sys.getrefcount(15) 70
>>>> sys.getrefcount(12341234)
> 2
>
> I understand that the objects for numbers from 0 to 100 are shared,
> but I find it unlikely that there are actually 1495 references to zero,
> and 70 to 15. Zero is a popular number, but 1495? These results
> are typical for absolutely nothing happening in Python
Actually they aren't. On my system python with absolutely nothing
happening:
Python 2.1 (#15, Apr 16 2001, 18:25:49) [MSC 32 bit (Intel)] on win32
Type "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.getrefcount(0)
49
Python running idle:
Python 2.1 (#15, Apr 16 2001, 18:25:49) [MSC 32 bit (Intel)] on win32
Type "copyright", "credits" or "license" for more information.
IDLE 0.8 -- press F1 for help
>>> import sys
>>> sys.getrefcount(0)
388
And finally running PythonWin:
PythonWin 2.1 (#15, Apr 16 2001, 18:25:49) [MSC 32 bit (Intel)] on win32.
Portions Copyright 1994-2001 Mark Hammond (MarkH at ActiveState.com) - see
'Help/About PythonWin' for further copyright information.
>>> import sys
>>> sys.getrefcount(0)
1137
>>>
So whatever you were running was doing even more nothing than PythonWin
which has 1137 nothings (and 3138 references to None).
--
Duncan Booth duncan at rcp.co.uk
int month(char *p){return(124864/((p[0]+p[1]-p[2]&0x1f)+1)%12)["\5\x8\3"
"\6\7\xb\1\x9\xa\2\0\4"];} // Who said my code was obscure?
More information about the Python-list
mailing list