Есть ли способ получить имя объекта в Python? Например:
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
Изменить: Некоторый контекст:
В действительности я создаю список функций, которые я могу указать в командной строке.
У меня есть:
def fun1:
pass
def fun2
pass
def fun3:
pass
fun_dict = {'fun1': fun1,
'fun2': fun2,
'fun3': fun3}
Я получаю имя функции из командной строки, и я хочу вызвать соответствующую функцию:
func_name = parse_commandline()
fun_dict[func_name]()
И причина, по которой я хочу иметь имя функции, заключается в том, что я хочу создать fun_dict
, не записывая имена функций дважды, поскольку это похоже на хороший способ создания ошибок. Я хочу сделать это:
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
Таким образом, мне нужно только один раз написать имена функций.