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

Как добавить новую переменную с кастомным именем в объект?

Пока еще не понадобилось, но очень интересно... Допустим я хочу добавить в
class Test:
   def __init__(self):
      self.sma=None
t=Test()

новые переменные допустим утрированно похожим методом
for i in range(0,3):
    exec('t.sma_'+str(i)+'=None')

и в итоге хочу получить
print(t.sma_0) // None
print(t.sma_1) // None
print(t.sma_2) // None
print(t.sma_3) // None

Как подобное делается правильно? И как часто такое вообще используется?
  • Вопрос задан
  • 46 просмотров
Подписаться 1 Простой 1 комментарий
Решения вопроса 1
@galaxy
Вас смущает что именно?
Новые атрибуты в объект добавлять можно, очевидным образом:
t.sma_1 = 17

Если название атрибута неконстантно - setattr():
setattr(t, "sma_" + str(2), 17)
# можно и так
t.__setattr__("sma_" + str(2), 17)
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Похожие вопросы
от 200 000 до 300 000 ₽
Greenway Global Новосибирск
от 150 000 ₽
Akronix Санкт-Петербург
от 150 000 до 200 000 ₽
01 февр. 2025, в 14:08
28000 руб./за проект
01 февр. 2025, в 13:13
5000 руб./за проект
01 февр. 2025, в 13:12
5000 руб./за проект