Python 作为函数参数的模块

Python 作为函数参数的模块,python,module,Python,Module,我有一个python脚本,它从导入包含数据的python模块开始。下面给出了一个非常简化的示例: my_data1.py bar = 10 baz = [1, 5, 7] ... from my_data1 import * def foo(): ''' function that uses the things defined in data (scalar, list, dicts, etc.) in my_data ''' return [bar

我有一个python脚本,它从导入包含数据的python模块开始。下面给出了一个非常简化的示例:

my_data1.py

bar = 10
baz = [1, 5, 7]
...
from my_data1 import *

def foo():
    '''
    function that uses the things defined in data (scalar, list, dicts, etc.)
    in my_data
    '''
    return [bar] + baz
bar = 31
baz = [-1, 58, 8]
...
my_func.py

bar = 10
baz = [1, 5, 7]
...
from my_data1 import *

def foo():
    '''
    function that uses the things defined in data (scalar, list, dicts, etc.)
    in my_data
    '''
    return [bar] + baz
bar = 31
baz = [-1, 58, 8]
...
这对于一组数据非常有效;但是,我有
my_data1.py
,…,
my_data36.py

my_data 36.py

bar = 10
baz = [1, 5, 7]
...
from my_data1 import *

def foo():
    '''
    function that uses the things defined in data (scalar, list, dicts, etc.)
    in my_data
    '''
    return [bar] + baz
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)))
这不管用。想法?

使用。它接受一个字符串作为参数,标识要导入的模块,并返回该模块,然后您可以将其作为参数传递给函数

def processDataSet (module):
    print (module.baz)

for m in ['data1.py', 'data2.py', 'data69.py']:
    processDataSet (__import__ (m) )

“from module import*在函数定义中无效。”从

我可以从
my_data
导入特定数据,如果这样做可行的话,但我也没有弄清楚。是和否。36个变量中的每一个都有完全相同的数据名和不同的值(即
my_data1
具有
bar=3
my_data2
具有
bar=10
foo()
使用
bar
)为什么不通过读取和解析文件来获取“数据”?