On 21Apr2015 09:59, Alex Kleider <aklei...@sonic.net> wrote:
On 2015-04-20 22:21, Danny Yoo wrote:
What's supposed to happen in this situation?
##########################################
class Person(object):
   def __init__(self): pass

j = Person()
john = j
jack = j
##########################################

What single name should we get back from the single Person object
here?  "j", "john", or "jack"?

I was hoping that it would be possible to create a function
that would do the following:

def my_name(some_object):
 return some_object.__name__

so, using what you entered above..
my_name(j)
'j'
my_name(john)
'john'
my_name(jack)
'jack'

But I see what I think you and others have been trying to explain to me: that the expression some_object.__name__, if it existed, would indeed be schizophrenic since it would be an attribute of the object, not the name(s) to which it is bound.

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 <c...@zip.com.au>

Technique will get you through times of no strength a lot better than
strength will get you through times of no technique.    - the Nealomatic
_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
https://mail.python.org/mailman/listinfo/tutor

Reply via email to