Por que minha função python não está definida quando existe no mesmo arquivo?

Eu tenho uma função simples, que eu chamareimyFunction. Ele pega dois parâmetros, executa alguns cálculos e retorna o resultado.

Eu também tenho uma aulaMyClass, que tem um construtor que tem um cabeçalho como este:

__init__(self, bar, fun=myFunction):

Quando tento executar qualquer coisa nesta classe, recebo o seguinte erro:

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

Se eu remover essa classe, posso usar myFun no Python Shell, então qual é o problema?

questionAnswers(2)

yourAnswerToTheQuestion