我有一个简单的函数,我将其称为myFunction
。它需要两个参数,对它们执行一些计算,然后返回结果。
我还有一个类MyClass
,它有一个构造函数,其头像是这样的:
__init__(self, bar, fun=myFunction):
当我尝试在此课程中运行任何内容时,我收到以下错误:
MyClass
def __init__(self, bar, fun=myFunction):
NameError: name 'myFunction' is not defined
如果删除这个类,我可以在Python Shell中使用myFun,那么这笔交易是什么?
答案 0 :(得分:11)
您尚未显示实际代码,因此很难确定,但我打赌myFunction
是在MyClass
之后定义的。定义__init__
方法时会计算默认值表达式,因此必须在此时定义myFunction
。稍后定义为时已晚。
答案 1 :(得分:-6)
myFunction是一个变量,而不是一个值,所以你不能将它用作默认参数。
也许您可以使用lambda函数作为默认参数,而不是声明函数的名称。