¿Por qué mi función de Python no está definida, cuando existe en el mismo archivo?

Tengo una función simple, que llamarémyFunction. Toma dos parámetros, realiza algunos cálculos en ellos y devuelve el resultado.

También tengo una clase,MyClass, que tiene un constructor que tiene un encabezado como este:

__init__(self, bar, fun=myFunction):

Cuando intento ejecutar algo en esta clase, me aparece el siguiente error:

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

Si elimino esta clase, puedo usar myFun en Python Shell, entonces, ¿cuál es el problema?

Respuestas a la pregunta(2)

Su respuesta a la pregunta