我在spyder ide中编写了代码,并将其命名为test1.py,还编写了另一个代码,其中我调用了第1个代码。你知道吗
第1代码:
def buildConnectionString(params):
"""Build a connection string from a dictionary of parameters."""
return ";".join(["%s=%s" % (k, v) for k, v in params.items()])
if __name__ == "__main__":
myParams = {"server":"mpilgrim", \
"database":"master", \
"uid":"sa", \
"pwd":"secret" \
}
print buildConnectionString(myParams)
第二代码:
import test1
Params = {"server":"mpilgrim", \
"database":"master", \
"uid":"sa", \
"pwd":"secret" \
}
print test1.buildConnectionString(Params)
但我得到一个错误打印buildConnectionString(myParams)
NameError: name 'myParams' is not defined
。你知道吗
如果将文件作为模块导入,
__name__
将不会是"__main__"
(它将是"test1"
),因此myParams
从未定义过。你知道吗导入python模块时,需要在模块的目录中有一个
__init__.py
文件(可以为空)。你知道吗你的缩进看起来很奇怪,但我想这就是格式。你知道吗
See the modules docs for python
缩进。我的猜测是,您正在运行的代码仍然存在发布在这里的代码的缩进问题之一。你知道吗
导入文件的最后一行
需要缩进才能在
阻止。否则,当尚未定义
myParams
dict时,它将尝试在导入时执行。你知道吗相关问题 更多 >
编程相关推荐