2015-02-10 2 views

ответ

0

Что вы имеете в виду? Назначить var в словаре, где 'name' оценивается как 'abc'? В этом случае

var = {'name': 'abc'} 

В противном случае я понятия не имею, о чем вы спрашиваете.

2

globals() метод возвращает словарь, содержащий все имена глобальной области видимости. Вы можете использовать это для создания переменной, имя которой хранится в другой переменной. Что-то вроде этого:

>>> var = 'abc' 
>>> globals() 
{'__builtins__': <module '__builtin__' (built-in)>, '__name__': '__main__', 'var': 'abc', '__doc__': None, '__package__': None} 
>>> globals()[var] = {} 
>>> abc 
{} 
>>> globals() 
{'abc': {}, '__builtins__': <module '__builtin__' (built-in)>, '__package__': None, 'var': 'abc', '__name__': '__main__', '__doc__': None} 
>>> abc['p0'] = 2 
>>> abc 
{'p0': 2} 
>>> 
+0

locals() - более безопасный выбор, если он используется в области. –

+1

@Iskren Я изначально упоминал 'locals()', но позже обнаружил, что у него есть проблема, как указано здесь: http://stackoverflow.com/a/8028772/377953 – taskinoor

Смежные вопросы