在Python中实现函数的前向声明

是否有可能声明函数并在python中单独实现它们? 我的意思是像C:

void foo(); void foo() { } 

C前向声明用于解决依赖性问题。 函数foo使用函数foo ,在声明它之前foo需要bar存在:

 void bar() { if (condition) { foo(); } } void foo() { if (condition) { bar(); } } 

将不会编译,因为还没有声明foo ; void foo(); 是C拼写我知道我在做什么,编译器,接受foo以后会存在

Python中没有这样的依赖性问题,因为在运行时查找全局名称; 它们在编译时不一定存在。

换句话说,这只是有效

 def bar(): if condition: foo() def foo(): if condition: bar() 

因为barfoo在运行时被解析了。

如果您的脚本是独立的,您可以使用__name__=='__main__'通过前向声明来解决您的问题。

请注意,这不是一个问题的答案,而是一个解决方法。 请考虑以下脚本作为示例。

 def main(): bar() def bar(): print "Hello World" if __name__=="__main__": main() # can be any function not necessarily "main" 

我不熟悉C 从您已经得到的评论来看,似乎您正在尝试解决Python中不存在的问题。

我能想到的最接近你要问的是:

 def foo(): pass 

例如,在布置类时,有时会将其用于测试目的,即使您尚未编写特定函数的代码,也希望它能够顺利运行。

但是,还有另一种用途。 如果您正在尝试创建模板方法模式,则在基类中声明的回调函数可以采用以下forms:

 def callback(): pass 

然后可以在子类( 可选 )中实现这些方法,而不是必须实现的抽象方法。