[英]Implementing forward declarations for functions in Python
是否有可能声明函数并在python中单独实现它们? 我的意思是在C中:
void foo();
void foo()
{
}
C前向声明用于解决依赖性问题。 功能foo
由功能使用bar
,和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()
因为bar
和foo
在运行时被解析了。
如果你的脚本是独立的,你可以使用__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
例如,在布置类时,有时会将其用于测试目的,即使您尚未编写特定函数的代码,也希望它能够顺利运行。
但是,还有另一种用途。 如果您正在尝试创建模板方法模式,则在基类中声明的回调函数可以采用以下形式:
def callback(): pass
然后可以在子类( 可选 )中实现这些方法,而不是必须实现的抽象方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.