Comment puis-je obtenir le nom d'un objet en Python?

Est-il possible d'obtenir le nom d'un objet en Python? Par exemple:

my_list = [x, y, z] # x, y, z have been previously defined

for bla in my_list:
    print "handling object ", name(bla) # <--- what would go instead of `name`?
    # do something to bla

Edit: contexte:

Ce que je suis en train de faire est de créer une liste des fonctions que je peux préciser par la ligne de commande.

J'ai:

def fun1:
    pass
def fun2
    pass
def fun3:
    pass

fun_dict = {'fun1': fun1,
            'fun2': fun2,
            'fun3': fun3}

- Je obtenir le nom de la fonction à partir de la ligne de commande et je tiens à appeler la fonction correspondante:

func_name = parse_commandline()

fun_dict[func_name]()

Et la raison pour laquelle je veux avoir le nom de la fonction est parce que je veux créer fun_dict sans écrire les noms des fonctions deux fois, puisque cela semble être une bonne façon de créer des bugs. Ce que je veux faire est:

fun_list = [fun1, fun2, fun3] # and I'll add more as the need arises

fun_dict = {}
[fun_dict[name(t) = t for t in fun_list] # <-- this is where I need the name function

De cette façon, j'ai seulement besoin d'écrire les noms de fonction une fois.

  • Ce qui devrait qui de retour de la fonction dans ce cas?
  • Comme d'habitude, je vais vous demander de nous dire quel est le problème que vous essayez de résoudre.
  • meta.stackexchange.com/questions/18584/...
  • est-ce mieux?
  • Oui. Parce que les fonctions ont un __name__ attribut.
  • St comme def getname(obj): try: name = obj.__name__ except AttributeError as e: name = re.match("^'(.*)'", str(e)).group(1) return name (ou linéaire de la recherche pour """ au lieu de re utilisation du module) ?
  • Près de dix ans et aucune explication de ce que vous étiez en train de faire? Déclarer certaines fonctions globales? (mais pourquoi pas un corps de fonction? ou pourquoi ne pas les emballer dans votre propre paquet et de l'importer?) Et qu'est-ce que le code d'essayer de faire: avoir Python analyser un (Windows/Unix) de ligne de commande pour ces noms, puis d'appeler le correspondant Python (global) de la fonction? Et je ne vois pas pourquoi ils devaient absolument être global. Je pense que le but de votre question était plutôt "Comment Python résoudre fonction/méthode des références?"