You can't. Within the same scope, code is executed in the order it is defined.
In Python, a function definition is an executable statement, part of the normal flow of execution, resulting in the name being bound to the function object. Next, names are resolved (looked up) at runtime (only the scope of names is determined at compile time).
This means that if you define my_function
within a module or function scope, and want to use it in the same scope, then you have to put the definition before the place you use it, the same way you need to assign a value to a variable name before you can use the variable name. Function names are just variables, really.
You can always reference functions in other scopes, provided those are executed after the referenced function has been defined. This is fine:
def foo():
bar()
def bar():
print("Do something...")
foo()
because foo()
is not executed until after bar()
has been defined.