É possível declarar adiante uma função no Python? Quero classificar uma lista usando minha própria cmp
função antes de ser declarada.
print "\n".join([str(bla) for bla in sorted(mylist, cmp = cmp_configs)])
Organizei meu código para colocar a definição de cmp_configs
método após a invocação. Falha com este erro:
NameError: name 'cmp_configs' is not defined
Existe alguma maneira de "declarar" o cmp_configs
método antes de ser usado? Isso faria meu código parecer mais limpo?
Suponho que algumas pessoas ficarão tentadas a me dizer que eu deveria reorganizar meu código para não ter esse problema. No entanto, há casos em que isso provavelmente é inevitável, por exemplo, ao implementar algumas formas de recursão. Se você não gostar deste exemplo, suponha que eu tenha um caso em que é realmente necessário encaminhar declarar uma função.
Considere este caso em que uma função de declaração direta seria necessária no Python:
def spam():
if end_condition():
return end_result()
else:
return eggs()
def eggs():
if end_condition():
return end_result()
else:
return spam()
Onde end_condition
e end_result
foram definidos anteriormente.
A única solução é reorganizar o código e sempre colocar definições antes das invocações?