ob_refcnt INCREF and so on...
Michael Hudson
mwh21 at cam.ac.uk
Sat May 27 18:00:49 EDT 2000
Courageous <jkraska1 at san.rr.com> writes:
[snip]
> Can someone confirm or deny this, and if I'm mistaken, explain why
> the refcnt of the object is 2 at the point where I print it??????
>
> If correct, is there a predictable time when the temporary will
> lose it's reference hold on the object?
YHBT-M (You Have Been Time-Machined):
>>> print sys.getrefcount.__doc__
getrefcount(object) -> integer
Return the current reference count for the object. This includes the
temporary reference in the argument list, so it is at least 2.
>>>
The reference will go away after the function returns. Read the
source for the CALL_FUNCTION opcode(s if you're in 1.6aX) for the gory
(and I do mean gory) details.
The comment isn't strictly true, either:
>>> class C:
... pass
...
>>> sys.getrefcount(C())
1
>>>
HTH,
Michael
--
3. Syntactic sugar causes cancer of the semicolon.
-- Alan Perlis, http://www.cs.yale.edu/homes/perlis-alan/quotes.html
More information about the Python-list
mailing list