Est-il possible de déclarer une fonction à l'avance en Python ? Je veux trier une liste en utilisant ma propre fonction cmp
avant qu'elle ne soit déclarée.
print "\n".join([str(bla) for bla in sorted(mylist, cmp = cmp_configs)])
J'ai mis la définition de cmp_configs
après l'invocation. Il échoue avec cette erreur :
NameError: name 'cmp_configs' is not defined
Existe-t-il un moyen de "déclarer" cmp_configs
avant qu'elle ne soit utilisée ?
Il est parfois difficile de réorganiser le code pour éviter ce problème. Par exemple, lors de la mise en œuvre de certaines formes de récursivité :
def spam():
if end_condition():
return end_result()
else:
return eggs()
def eggs():
if end_condition():
return end_result()
else:
return spam()
Où end_condition
y end_result
ont été définies au préalable.
La seule solution est-elle de réorganiser le code et de toujours placer les définitions avant les invocations ?