Python不会定义函数

时间:2013-02-05 17:19:02

标签: python

我回到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以来,已经有一段时间了。幽默我。

3 个答案:

答案 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文件并重新启动解释器。