[Python-Dev] Borrowed and Stolen References in API

Georg Brandl g.brandl at gmx.net
Fri May 6 20:16:20 CEST 2011


On 06.05.2011 12:27, Antoine Pitrou wrote:
> On Fri, 06 May 2011 13:28:11 +1200
> Greg Ewing <greg.ewing at canterbury.ac.nz> wrote:
> 
>> Amaury Forgeot d'Arc wrote [concerning the Doc/data/refcounts.dat file]:
>> 
>> > This is not always true, for example when the item is already present
>> > in the dict.
>> > It's not important to know what the function does to the object,
>> > Only the action on the reference is relevant.
>> 
>> Yes, that's the whole point. When using a functon,
>> what you need to know is whether it borrows or steals
>> a reference.
> 
> Doesn't "borrow" mean the same as "steal" in that context?
> If an API borrows a reference, I expect it to take it from me.

Basically, "borrow" is applied to return values (or, more generally,
"out" parameters), and means that *you* borrowed the reference.
"steal", OTOH, is applied to (and the exception for) "in" parameters.

Georg




More information about the Python-Dev mailing list