Я хочу назвать свою переменную на основе проанализированной строки.
Например: если анализируется в строке == 'собака': имя моей переменной должно быть равно собаке, а ее значение - строке 'собака'
Я хочу назвать свою переменную на основе проанализированной строки.
Например: если анализируется в строке == 'собака': имя моей переменной должно быть равно собаке, а ее значение - строке 'собака'
Этот ответ для информирования о таблицах символов в python помогает напрямую ответить на вопрос:
>>> varname = 'spam'
>>> value = 'eggs'
>>> locals()
{'__builtins__': <module 'builtins' (built-in)>, 'varname': 'spam', 'value': 'eggs', '__package__': None, '__name__': '__main__', '__doc__': None}
>>> locals()[varname] = value
>>> locals()
{'__builtins__': <module 'builtins' (built-in)>, 'varname': 'spam', 'spam': 'eggs', 'value': 'eggs', '__package__': None, '__name__': '__main__', '__doc__': None}
>>> print(spam)
some value
locals()
предоставляет dict
локально видимых переменных. И, изменяя dict, вы можете изменять и создавать новые переменные. Документация по Python здесь
Существует также соответствующий globals()
доступ к глобальному видимые переменные. См. эту часть документации по Python. узнать о области видимости переменных.
В приведенном выше контексте globals()
дает dict
с тем же содержимым, потому что в этом случае локальная область является глобальной. Внутри класса вы увидите различный контент, и вам нужно решить, хотите ли вы изменить локальную область или глобальную.
Тем не менее, это, вероятно, не такая уж хорошая идея делать такие вещи, если вы не знаете, что делаете. Вы можете создавать объекты самоопределяемого класса, которые имеют атрибут имени - зависит от того, что вы собираетесь делать.