Уведомления

Группа в Telegram: @pythonsu

#1 Март 29, 2011 05:16:17

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

Получить имя переменной

Можно сделать так?

>>name(a)
a



Офлайн

#2 Март 29, 2011 05:58:48

o7412369815963
От:
Зарегистрирован: 2009-06-17
Сообщения: 1986
Репутация: +  32  -
Профиль   Отправить e-mail  

Получить имя переменной

>>> a = 'str'
>>> name = lambda x:[n for n in globals() if id(globals()[n])==id(x)][0]
>>> name(a)
'a'
только зачем оно?

Отредактировано (Март 29, 2011 06:04:37)

Офлайн

#3 Март 29, 2011 17:56:43

asilyator
От:
Зарегистрирован: 2010-10-24
Сообщения: 276
Репутация: +  -2  -
Профиль   Отправить e-mail  

Получить имя переменной

for n in globals() же - перебор.

Есть функция

def global_print(*names):
for name in names:
var = globals()[name]
if isinstance(var, long):
print "%s = 0x%x\n" % (name, var)
else:
print "%s = %s\n" % (name, var)
Но передавать имена переменных показалось мне плохим стилем, было бы лучше передавать сами переменные.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version