Задать вопрос
@PCgames2008

Как в название одной переменной внести значение другой переменной?

Я создал переменную которая считывает что написал пользователь и мне надо что бы значение из этой переменной вписывалось в название другой переменной. Например пользователь написал "Hello" и это значение вписалось в переменную text_input, далее мне требуется создать переменную в названии которой будет значение переменной text_input. Например эта переменная называется name_ и мне надо что бы эта переменная приняла название name_Hello.
Подскажите как это можно сделать, заранее спасибо. (input если что это поле ввода)
  • Вопрос задан
  • 256 просмотров
Подписаться 1 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 2
Vindicar
@Vindicar
RTFM!
Это можно сделать, но в 99% случаев это не нужно делать. Во-первых, пользователь может ввести строку, которая не является корректным идентификатором. Во-вторых, появляется риск нечаянно перезаписать переменную, которую мы не хотели трогать.
Вместо этого следует использовать словарь (dict), где ключ - имя "переменной", а значение - её содержимое. Это куда более контролируемо.
Нет, я хочу выстрелить себе в ногу, и санитары меня не остановят!

Функция globals() возвращает словарь глобальных переменных, а locals() - словарь локальных.
При этом эти словари - не копии, а, можно сказать, оригиналы. Добавишь в них новый ключ - появится новая переменная. Вот пример в интерактивной консоли питона:
Python 3.11.7 (tags/v3.11.7:fa7a6f2, Dec  4 2023, 19:24:49) [MSC v.1937 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> l = locals()
>>> l['x'] = 1
>>> x
1
>>>

Ответ написан
Комментировать
@PCgames2008 Автор вопроса
Vindicar Этот способ не совсем подходящий так как в избежание перезаписи я создам список тех переменных которые уже созданы и если они существуют то тогда их не получится перезаписать. А что касается словаря то он не подойдёт так как переменная будет создавать новые объекты при помощи tkinter.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы