finding name of instances created

Antoon Pardon apardon at forel.vub.ac.be
Mon Jan 24 14:35:31 CET 2005


Op 2005-01-24, Nick Coghlan schreef <ncoghlan at iinet.net.au>:
> Steven Bethard wrote:
>> That is, you can just keep track of all the names of a Robot in the 
>> Robot object.  In the simple case, where there's only one name, you can 
>> display it as such.  In the more complicated case, where there's some 
>> aliasing, you can display the multiple aliases.  This means you don't 
>> have to teach about aliasing right off the bat, but if a student 
>> accidentally discovers it on their own, the machinery's there to explain 
>> it...
>
> Incidentally, this discussion made me realise the real reason why using a lambda 
> to create a named function is evil:

It is not a named function, it is just a lamda that is assigned to a
name.
>
> Py> def f(): pass
> ...
> Py> f.func_name
> 'f'
> Py> f = lambda: None
> Py> f.func_name
> '<lambda>'
>
> I think I've heard that explanation before, but it never really clicked.

I just don't see what is so evil about it.

Why is it so trouble some that a function wouldn't have a name, while
most objects don't have a name. Why is it a problem doing something
like:

   f = lambda: None

But isn't it a problem doing something like

   v = None.


Why don't we demand something like

   Py> assign v: None
   Py> v.obj_name
   'v'

-- 
Antoon Pardon



More information about the Python-list mailing list