Sobes.tech
Back to questions
Junior — Middle
59

Можно ли в Python использовать переменные с динамическими именами?

Answer from AI

sobes.tech AI

В Python нельзя напрямую создавать переменные с динамическими именами, как, например, в некоторых других языках. Однако есть несколько способов добиться похожего эффекта:

  1. Использование словарей — самый рекомендуемый способ. Ключи словаря могут быть динамическими, что позволяет хранить данные с динамическими «именами».
variables = {}
for i in range(3):
    variables[f'var_{i}'] = i * 10

print(variables['var_1'])  # 10
  1. Использование функции globals() или locals() — можно добавить переменную в глобальное или локальное пространство имен, но это не рекомендуется из-за потенциальных проблем с читаемостью и отладкой.
globals()['dynamic_var'] = 42
print(dynamic_var)  # 42
  1. Использование setattr для атрибутов объектов — если нужно динамически создавать свойства объекта.
class MyClass:
    pass

obj = MyClass()
setattr(obj, 'dynamic_attr', 'value')
print(obj.dynamic_attr)  # value

Лучше всего использовать словари или объекты с динамическими атрибутами вместо создания переменных с динамическими именами.