为什么没有定义我的Python功能,当在同一文件中存在吗?(Why is my python fun

2019-06-25 16:56发布

我有一个简单的功能,我要给myFunction 。 它有两个参数,对他们进行一些计算,并返回结果。

我也有一个类, MyClass ,它具有具有这样的头一个构造函数:

__init__(self, bar, fun=myFunction):

当我尝试在这个类中运行任何东西,我得到以下错误:

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

如果我删除这个类,我可以在Python Shell中使用myFun,所以这是怎么回事?

Answer 1:

您还没有表现出实际的代码,所以很难确定,但我敢打赌, myFunction被定义后MyClass 。 该时的默认值表达式计算__init__定义的方法,所以myFunction必须在该点来定义。 后来定义为时已晚。



Answer 2:

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

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



文章来源: Why is my python function not defined, when it exists in the same file?