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

use*_*936 4 python function defined nameerror

我有一个简单的功能,我将称之为myFunction.它需要两个参数,对它们执行一些计算,并返回结果.

我也有一个类,MyClass它有一个构造函数,其头部如下:

__init__(self, bar, fun=myFunction):
Run Code Online (Sandbox Code Playgroud)

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

MyClass
    def __init__(self, bar, fun=myFunction):
NameError: name 'myFunction' is not defined
Run Code Online (Sandbox Code Playgroud)

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

Ned*_*der 11

你没有显示实际的代码,所以很难确定,但我打赌myFunction是后定义的MyClass.__init__定义方法时会计算默认值表达式,因此myFunction必须在该点定义.以后定义为时已晚.