Back to questions
Junior — Middle
59
Можно ли в Python использовать переменные с динамическими именами?
Answer from AI
sobes.tech AI
В Python нельзя напрямую создавать переменные с динамическими именами, как, например, в некоторых других языках. Однако есть несколько способов добиться похожего эффекта:
- Использование словарей — самый рекомендуемый способ. Ключи словаря могут быть динамическими, что позволяет хранить данные с динамическими «именами».
variables = {}
for i in range(3):
variables[f'var_{i}'] = i * 10
print(variables['var_1']) # 10
- Использование функции
globals()илиlocals()— можно добавить переменную в глобальное или локальное пространство имен, но это не рекомендуется из-за потенциальных проблем с читаемостью и отладкой.
globals()['dynamic_var'] = 42
print(dynamic_var) # 42
- Использование
setattrдля атрибутов объектов — если нужно динамически создавать свойства объекта.
class MyClass:
pass
obj = MyClass()
setattr(obj, 'dynamic_attr', 'value')
print(obj.dynamic_attr) # value
Лучше всего использовать словари или объекты с динамическими атрибутами вместо создания переменных с динамическими именами.