擅长:python、mysql、java
<p>你没有包括很多关于你的工作的信息主.py,或是回溯信息,所以我在这里猜一下。据我所知,这是你问题的简化版本:</p>
<p>主要</p>
<pre><code>$ cat Main.py
import calcFun
print calcFun.Calc(10, 20)
</code></pre>
<p>计算单元</p>
<pre><code>$ cat calcFun.py
def Calc(a, b):
resultStr = '\na' + str(a)
resultStr += '\nb' + str(b)
return resultStr
</code></pre>
<p>请注意,运行正常:</p>
<pre><code>$ python Main.py
a10
b20
</code></pre>
<p>但是如果我尝试使用变量名'a'和'b'</p>
<pre><code>$ cat Main.py
import calcFun
print calcFun.Calc(a, b)
</code></pre>
<p>这将产生您提到的错误,但它与您的其他函数或文件无关,您只是引用不存在的变量(您需要为它们提供一个值):</p>
<pre><code>$ python Main.py
Traceback (most recent call last):
File "Main.py", line 3, in <module>
print calcFun.Calc(a, b)
NameError: name 'a' is not defined
</code></pre>
<p>这与</p>
<pre><code>$ python -c 'sum([a, b])'
</code></pre>
<p>相比</p>
<pre><code>$ python -c 'sum([1, 2])'
</code></pre>
<p>另外,通常的python命名约定会将文件命名为'主.py'和'计算_有趣的.py“相反。参见PEP8的相关章节<a href="https://www.python.org/dev/peps/pep-0008/#package-and-module-names" rel="nofollow">https://www.python.org/dev/peps/pep-0008/#package-and-module-names</a>。你知道吗</p>