У меня есть скрипт python, который начинается с импорта модуля python, который содержит данные. Очень упрощенный пример приведен ниже:Модули как аргументы функции
my_data1.py
bar = 10
baz = [1, 5, 7]
...
my_func.py
from my_data1 import *
def foo():
'''
function that uses the things defined in data (scalar, list, dicts, etc.)
in my_data
'''
return [bar] + baz
Это прекрасно работает для одного набора данных; однако, есть my_data1.py
, ..., my_data36.py
.
my_data36.py
bar = 31
baz = [-1, 58, 8]
...
, что я хочу импортировать, а затем запустить foo()
с этими данными. Я хотел сделать что-то вроде этого:
def foo(my_data):
from my_data import *
results = []
for i in range(1,37):
results.append(foo('my_data{}'.format(i)))
Это не работает. Идеи?
Я мог бы импортировать определенные данные из 'my_data', если это делает это возможным, но я тоже не смог понять это. – cdhagmann
Да и нет. Каждый из 36 имеет те же самые имена данных с разными значениями (то есть 'my_data1' имеет' bar = 3', 'my_data2' имеет' bar = 10' и 'foo()' использует 'bar') – cdhagmann
Почему бы не получить «данные» путем чтения и разбора файла? –