为什么我的python函数没有定义,当它存在于同一个文件中时?

时间:2012-06-22 23:30:29

标签: python function nameerror defined

我有一个简单的函数,我将其称为myFunction。它需要两个参数,对它们执行一些计算,然后返回结果。

我还有一个类MyClass,它有一个构造函数,其头像是这样的:

__init__(self, bar, fun=myFunction):

当我尝试在此课程中运行任何内容时,我收到以下错误:

MyClass
    def __init__(self, bar, fun=myFunction):
NameError: name 'myFunction' is not defined

如果删除这个类,我可以在Python Shell中使用myFun,那么这笔交易是什么?

2 个答案:

答案 0 :(得分:11)

您尚未显示实际代码,因此很难确定,但我打赌myFunction是在MyClass之后定义的。定义__init__方法时会计算默认值表达式,因此必须在此时定义myFunction。稍后定义为时已晚。

答案 1 :(得分:-6)

myFunction是一个变量,而不是一个值,所以你不能将它用作默认参数。

也许您可以使用lambda函数作为默认参数,而不是声明函数的名称。