我正在尝试在python中定义一个基本函数,但是当我运行一个简单的测试程序时,我总是得到以下错误;
>>> pyth_test(1, 2)
Traceback (most recent call last):
File "<pyshell#2>", line 1, in <module>
pyth_test(1, 2)
NameError: name 'pyth_test' is not defined
以下是我为此功能使用的代码;
def pyth_test (x1, x2):
print x1 + x2
更新:我有一个名为pyth.py的脚本打开,然后我在解释器中输入pyth_test(1,2)时它会给出错误。
感谢您的帮助。 (我为基本问题道歉,我以前从未编程,并且正在尝试学习Python作为一种爱好)
import sys
sys.path.append ('/Users/clanc/Documents/Development/')
import test
printline()
## (the function printline in the test.py file
##def printline():
## print "I am working"
答案 0 :(得分:36)
是的,但在pyth_test
的定义中声明了什么文件?它是否也被称为它之前?
编辑:
要进行透视,请使用以下内容创建名为test.py
的文件:
def pyth_test (x1, x2):
print x1 + x2
pyth_test(1,2)
现在运行以下命令:
python test.py
你应该看到你想要的输出。现在,如果您正处于交互式会话中,它应该是这样的:
>>> def pyth_test (x1, x2):
... print x1 + x2
...
>>> pyth_test(1,2)
3
>>>
我希望这能解释声明是如何运作的。
为了让您了解布局的工作原理,我们将创建一些文件。使用以下内容创建一个新的空文件夹以保持清洁:
<强> myfunction.py 强>
def pyth_test (x1, x2):
print x1 + x2
<强> program.py 强>
#!/usr/bin/python
# Our function is pulled in here
from myfunction import pyth_test
pyth_test(1,2)
现在如果你跑:
python program.py
它将打印出来3.现在解释出了什么问题,让我们以这种方式修改我们的程序:
# Python: Huh? where's pyth_test?
# You say it's down there, but I haven't gotten there yet!
pyth_test(1,2)
# Our function is pulled in here
from myfunction import pyth_test
现在让我们看看会发生什么:
$ python program.py
Traceback (most recent call last):
File "program.py", line 3, in <module>
pyth_test(1,2)
NameError: name 'pyth_test' is not defined
如上所述,由于上述原因,python无法找到该模块。因此,您应该将声明保持在最顶层。
现在,如果我们运行交互式python会话:
>>> from myfunction import pyth_test
>>> pyth_test(1,2)
3
同样的过程适用。现在,包导入并不是那么简单,所以我建议您研究modules work with Python的方式。我希望这对你的学习有所帮助并祝你好运!
答案 1 :(得分:3)
它对我有用:
>>> def pyth_test (x1, x2):
... print x1 + x2
...
>>> pyth_test(1,2)
3
确保定义之前的功能。
答案 2 :(得分:1)
在python函数中,无法从各处神奇地访问函数(比如说,php)。必须首先宣布它们。所以这将有效:
def pyth_test (x1, x2):
print x1 + x2
pyth_test(1, 2)
但这不会:
pyth_test(1, 2)
def pyth_test (x1, x2):
print x1 + x2
答案 3 :(得分:0)
如果你展示了用于简单测试程序的代码,那将会有所帮助。直接放入解释器这似乎工作。
>>> def pyth_test (x1, x2):
... print x1 + x2
...
>>> pyth_test(1, 2)
3
>>>
答案 4 :(得分:0)
如果使用IDLE安装的Python版本
>>>def any(a,b):
... print(a+b)
...
>>>any(1,2)
3