假设我有一个包含以下功能的模块foo.py
:
def bar(var=somedict):
print(var)
在主程序main.py
中,我导入此模块,定义变量somedict
,然后运行函数bar
:
from foo import *
somedict = 'foobar'
bar()
想法是somedict
作为默认参数传递而不必明确指定(我想在编写的实际程序中避免使用此参数)。
但是,Python抛出NameError: name 'somedict' is not defined
。如何仍然导入模块并获得所需的“默认变量传递”?谢谢!
答案 0 :(得分:0)
somedict
。因此from foo import *
会引发错误NameError: name 'somedict' is not defined
因此,如下修改foo.py
somedict={}
def bar(var=None):
if var is None:
var=somedict
print(var)
现在,您应该能够以略有不同的形式进行尝试
import foo
foo.somedict = {'a':1}
foo.bar()