在Python中定义函数之前可以调用函数吗?

时间:2019-10-09 14:27:25

标签: python python-3.x

如何定义函数原型?我在其定义上方调用了我的函数。但它没有用。 python解释器无法识别我的功能。

例如:

my_function()
...
def my_function():
    print("Do something...")
Unresolved reference 'my_function'

2 个答案:

答案 0 :(得分:2)

不能。在同一范围内,代码按定义的顺序执行。

在Python中,函数定义是可执行语句,是正常执行流程的一部分,导致名称绑定到函数对象。接下来,在运行时解析(查找)名称(在编译时仅确定名称的 scope )。

这意味着,如果您在模块或函数范围内定义my_function,并且想在同一范围内使用,则必须将定义 before < / em>使用它的位置,使用变量名之前,需要为变量名分配一个值。函数名称实际上只是变量。

您始终可以在其他范围内引用函数 ,只要这些函数在定义了所引用的函数之后执行即可。很好:

def foo():
    bar()

def bar():
    print("Do something...")

foo()

因为foo()直到定义bar()后才执行。

答案 1 :(得分:1)

仅在main()函数之后,

#!/usr/local/bin/python

def main ():
my_function()

def my_function():
  print("Do something...")

if __name__ == "__main__":
main ()

def语句实际上是可执行语句,而不是声明,顺序在这里很重要。