可以用Python前向声明函数吗?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (113)

可以用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_conditionend_result已经被定义过了。

提问于
用户回答回答于

您可以创建一个递归,如下所示:

def foo():
    bar()

def bar():
    foo()

Python的函数是匿名的,就像值是匿名的一样,但是它们可以绑定到名称。

用户回答回答于

如果您通过以下步骤启动脚本:

if __name__=="__main__":
   main()

扫码关注云+社区

领取腾讯云代金券