Python 作为函数参数的模块
我有一个python脚本,它从导入包含数据的python模块开始。下面给出了一个非常简化的示例: my_data1.pyPython 作为函数参数的模块,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
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
)为什么不通过读取和解析文件来获取“数据”?