是否有可能在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
之前已经定义。
唯一的解决方案是重新组织代码并始终在调用之前放置定义吗?