создание переменной с помощью функции?

#python

#питон

Вопрос:

Вот идея: я создаю функцию, которая создает переменную и хранит в ней некоторые данные, как бы я это сделал? напр.:

 def create_variable(name, data):  # code here  create_variable("x", "hello world!") print(x) # would return "hello world!"  

что — то в этом роде.

кто-нибудь знает, возможно ли это?

Комментарии:

1. Зачем ты это сделал? Просто верните значение и позвольте вызывающему абоненту присвоить его переменной, если он хочет (или напрямую использовать значение каким-либо другим способом, если оно им не нужно в переменной).

2. Верно. Не делай этого. Ты можешь это сделать x = create_variable(data) . Если вам действительно нужны динамические переменные, правильный способ — использовать словарь.

3. Я согласен с Тимом в использовании словаря

Ответ №1:

Предполагая, что значение переменной является только строкой (в противном случае вы можете добавить дополнительную проверку и синтаксический анализ строк), вы можете использовать exec с globals() для запуска строки в качестве кода python для присвоения значения глобальной переменной.

 def create_variable(name, data):  # code here  exec("{}='{}'".format(name, data), globals())  create_variable("x", "hello world!") print(x)  

Комментарии:

1. Хотя это технически решает проблему, это УЖАСНАЯ практика кодирования. exec Следует избегать как использования, так globals() и использования, за исключением особых обстоятельств. Это не один из них.

2. Кроме того, если вы уже используете globals , вы можете просто выполнить обычное задание элемента dict вместо неправильного exec использования .