Why is my python function not defined, when it exists in the same file?

defined, function, nameerror, python

Solution

You haven't shown the actual code so it's hard to be sure, but I bet `myFunction` is defined after `MyClass`. The default value expression is evaluated when the `__init__` method is defined, so `myFunction` must be defined at that point. Defining it later is too late.

Problem

I have a simple function, which I shall call `myFunction`. It takes two parameters, performs some calculations on them, and returns the result. I also have a class, `MyClass`, which has a constructor that has a header like this: ``` __init__(self, bar, fun=myFunction): ``` When I try to run anything in this class, I get the following error: ``` MyClass def __init__(self, bar, fun=myFunction): NameError: name 'myFunction' is not defined ``` If I remove this class, I can use myFun in the Python Shell, so what's the deal?

Original source