[Tutor] introspection

Dave Angel davea at davea.name
Fri May 8 04:10:31 CEST 2015


On 05/07/2015 09:50 PM, Alex Kleider wrote:
> On 2015-04-21 16:48, Cameron Simpson wrote:
>
>> But it would not be schizophrenic to write a function that returned a
>> name arbitrarily, by inspecting locals(). It depends whether you only
>> need a name, or if you need "the" name.
>>
>> Write yourself a "find_name_from_locals(local_map, value)" function
>> that reports. That will (a) get you a partial answer and (b) cement in
>> your mind what is possible and why. Easy and useful!
>>
>> Cheers,
>> Cameron Simpson <cs at zip.com.au>
>
> Well I finally got around to tackling this little challenge and you are
> right:
> It was illuminating.
>
> For what it's worth, here's the code that made the light go on:
> #!../venv/bin/python3
> # -*- coding: utf-8 -*-
> # vim: set file encoding=utf-8 :
> #
> # file: 'getname.py'
> """
>
> def get_name(localmap, item):
>      """As suggested.
>      Returns 'a' name, not necessarily 'the' name."""
>      for name in localmap:
>          if localmap[name] == item:

This is not likely to be what was intended.  You want
            if localmap[name] is item:
That can identify if one of the names happens to be bound to the SAME 
object being examined.  Rather than one that happens to have the same value.


-- 
DaveA


More information about the Tutor mailing list