我回到python中,我有一个非常基本的问题......
我的来源有以下内容......
def calrounds(rounds):
print rounds
当我通过shell运行并尝试调用calrounds(3)时,我得到了..
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
calrounds(3)
NameError: name 'calrounds' is not defined
自从我使用python以来,已经有一段时间了。幽默我。
答案 0 :(得分:2)
您首先import
是您的来源吗?
答案 1 :(得分:1)
它表示程序的第一行是使用参数calrounds
调用3
。移动到功能定义下方。定义需要在调用函数之前。如果您使用的是python 3.0+,则需要使用括号作为print语句。
>>> def calrounds(rounds):
print(rounds)
>>> calrounds(3)
3
答案 2 :(得分:1)
要做的第一件事就是看看你是如何调用这个函数的。假设它在myModule.py
中,你是import myModule
还是你from myModule import calrounds
?如果您使用了第一个,则需要将其称为myModule.calrounds()
。
接下来我要做的是确保你重新启动翻译。如果您import
编辑了一个模块,importing
它再次将重新加载源,但会使用已在内存中的内容。
下一个可能性是您导入的文件不是您认为的文件。您可能位于不同的目录中或从标准库中加载某些内容。在您import myModule
之后,您应该print myModule.__file__
并查看它是否是您认为正在处理的文件。经过20年的编程,我仍然发现自己大约每年做一次,这令人非常沮丧。
最后,Python有可能正在起作用。在myModule.py
旁边会有一个myModule.pyc
- 这是Python放置已编译代码的地方,因此可以更快地加载模块。通常,它足够聪明,可以判断您的源是否已被修改,但偶尔会失败。删除.pyc
文件并重新启动解释器。