Как мне заранее объявить функцию, чтобы избежать ошибок NameError для функций, определенных позже?Python

Программы на Python
Anonymous
Как мне заранее объявить функцию, чтобы избежать ошибок NameError для функций, определенных позже?

Сообщение Anonymous »

Можно ли заранее объявить функцию в Python? Я хочу отсортировать список с помощью собственной функции cmp перед его объявлением.

Код: Выделить всё

print "\n".join([str(bla) for bla in sorted(mylist, cmp = cmp_configs)])
Я поместил определение метода cmp_configs после вызова. Ошибка возникает из-за этой ошибки:

Код: Выделить всё

NameError: name 'cmp_configs' is not defined
Есть ли способ «объявить» метод cmp_configs перед его использованием?
Иногда бывает сложно реорганизовать код, чтобы избежать этой проблемы. Например, при реализации некоторых форм рекурсии:

Код: Выделить всё

def spam():
if end_condition():
return end_result()
else:
return eggs()

def eggs():
if end_condition():
return end_result()
else:
return spam()
Где ранее были определены end_condition и end_result.
Является ли единственным решением реорганизация кода и всегда помещать определения перед вызовами?

Вернуться в «Python»