How to get a unique id for bound methods?

Russell E. Owen rowen at cesmail.net
Fri Aug 19 19:33:22 EDT 2005


In article <mailman.3295.1124486677.10512.python-list at python.org>,
 Benji York <benji at benjiyork.com> wrote:

>Russell E. Owen wrote:
>> The id of two different methods of the same object seems to be the 
>> same, and it may not be stable either.
>
>Two facts you're (apparently) unaware of are conspiring against you:
>
>1) the "id" of an object is consistent for the lifetime of the object, 
>but may be reused after the object goes away
>
>2) methods are bound on an as-needed basis and then normally discarded 
>(unless you do something to keep them around)

Thank you and Bengt Richter. You both explained it very well.

The current issue is associated with Tkinter. I'm trying to create a tk 
callback function that calls a python "function" (any python callable 
entity).

To do that, I have to create a name for tk that is unique to my python 
"function". A hash-like name would be perfect, meaning a name that is 
always the same for a particular python "function" and always different 
for a different python "function". That would save a lot of housekeeping.

Does the built-in hash function actually do the job?

If I centralize all tk callback management and keep objects that 
represent the tk callback around then I can avoid the whole issue. I was 
hoping to avoid that, because it complicates housekeeping and adds a 
risk of memory leaks (at least I think so; right now tk deallocates its 
callback functions in the few cases I care about so I don't worry about 
it.)

-- Russell

P.S. Paolino: thank you also for your kind reply. Your suggestion sounds 
very useful if I only want a hash for a bound function, but in this case 
since I want a hash for any callable entity I'm not sure it'll work.



More information about the Python-list mailing list