如何在Python中转发声明/原型化函数?

时间:2014-08-16 14:36:34

标签: python function-prototypes

如何在类似于C ++的通用python程序中对方法进行原型设计?

//PROTOTYPE
do python protoyping

writeHello() //GIVES ERROR AS IT WAS NOT DEFINED YET

def writeHello():
    print "Hello"

1 个答案:

答案 0 :(得分:6)

Python没有原型设计,因为你不需要它

Python在运行时查找全局 ;这意味着当您使用writeHello 时,会在那里查找对象。该对象不需要在编译时存在,但确实需要在运行时存在。

在C ++中,您需要进行原型设计以允许两个函数相互依赖;然后,编译器可以确定您正在使用第二个后来定义的函数。但是因为Python在运行时查找第二个函数而不是,所以不需要这样的前向定义。

举例说明:

def foo(arg):
    if not arg:
        return bar()

def bar(arg=None):
    if arg is not None:
        return foo(arg)

这里,foobar在调用函数时被查找为全局变量,并且您不需要Python的bar()前向声明来编译{{1}成功。