Ваше описание того, что вы пытаетесь сделать, не совсем понятно, но автоматическое присвоение имен переменным что-то1, что-то2 и т. Д. Обычно плохая идея.Вместо этого используйте список:
transientvariables = []
transientvariables.append(makenewtransientvariable())
# ...
for tv in transientvariables:
print tv
Редактировать: Хорошо, я думаю, я понимаю, к чему вы клоните, хотя ваше объяснение все еще не совсем легко прочитать.У вас есть коллекция каналов с временными рядами температуры и давления, записанными для каждого, верно?
Самый простой способ - использовать словарь:
transients["tempPipe1"]
Или вложенные словари:
transients["temp"]["Pipe1"]
Или вы можете переопределить метод класса __getattr__
, чтобы он выглядел в словаре, и вы можете сделать:
transients.tempPipe1
Редактировать 2: Переопределение __getattr__
будет выглядеть примерно так:
def __getattr__(self, name):
if name in self.varMap:
return self.varMap[name]
raise AttributeError