Найти - Пользователи
Полная версия: Как просто добавить переменные в локальное пространство имен функции
Начало » Python для новичков » Как просто добавить переменные в локальное пространство имен функции
1
doza_and
Надо чтото типа:
def f():
locals()["aa"]=3
Можно сделать?

Контекст:
Есть много функций они пользуются данными из файлов - читают. Файлов тоже многою Лень возится с определением локальных переменных. Хочется в цикле.
def f():
vars="a b c d".split()
for i in vars:
locals()[i]=ReadData(i)
regall
Зачем, боюсь спросить, такое?
Чем уж тогда словари не подходят?
doza_and
В функциях довольно сложные формулы с этими переменными, со словорями будет очень длинно.
А сами данные наковырялись из некоторой внешней программы на фортране путем долгих и мучительных усилий.
regall
doza_and
В функциях довольно сложные формулы с этими переменными, со словорями будет очень длинно.
то есть
d = {}
d[i] = ReadData[i]
сильно длиннее чем
locals()[i] = ReadData[i]
?
Или я не так понял вопрос?
doza_and
примерно так:
a=ReadData("a")
b=ReadData("b")
.....
a2345=ReadData("a2345")
сильно длиннее чем
a="a b c .... a2345".split()
for i in a:
locals()[i]=ReadData(i)
а дальше здоровые куски кода:
z=a+b
zz=a+z*34/a2345
.....
doza_and
вообщето и “a b c …. a2345” я получаю как glob.glob(“*”)
Ну можно конечно сделать
for i in names:
exec("%s=ReadData('%s')"% (i,i))
но это не очень красиво когда можно сделать globals()=ReadData(i)
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB