我对Python中下面给出的代码感到困惑,其中函数在定义之前被调用。可能吗?是因为函数没有返回值吗?
from Circle import Circle
def main():
myCircle = Circle()
n = 5
printAreas(myCircle, n) #The function is called here
def printAreas(c, times):
xxxx
xxxx
main()
答案 0 :(得分:3)
您的计划会发生什么:
main
已定义,在其正文中引用了printAreas
,这只是一个参考,而不是一个电话printAreas
已定义main
已被调用main
来电printAreas
。所以一切都很好 - 你可以随时引用你想要的任何名字,只要你确保在执行包含引用的代码时定义这些名称(绑定到某个值) :
def foo():
print bar # reference to as-of-yet non-existent bar
# calling foo here would be an error
bar = 3
foo() # prints 3
答案 1 :(得分:0)
Python将首先解析您的文件,将所有函数,变量等注册到全局命名空间。它将然后调用main
函数,然后调用printAreas
。当时,这两个函数都在您的脚本命名空间中,因此可以完全访问。
让你感到困惑的只是阅读顺序。
答案 2 :(得分:0)
您在计划结束时致电main
。这允许口译员加载所有功能,然后启动main
功能。