一尘不染

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

python

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

我也有一个类,MyClass其中包含一个具有如下标头的构造函数:

__init__(self, bar, fun=myFunction):

当我尝试运行此类中的任何内容时,出现以下错误:

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

如果删除此类,则可以在Python Shell中使用myFun,那怎么办?


阅读 162

收藏
2021-01-20

共1个答案

一尘不染

您尚未显示实际代码,因此很难确定,但是我敢肯定myFunction在之后定义MyClass__init__定义方法时将评估默认值表达式,因此myFunction必须在此时定义。以后定义它为时已晚。

2021-01-20