python - 在 python 3.x 中声明其主体之前调用函数

标签 python function

我知道在 python 中,所有函数都必须在使用之前定义。所以这段代码会导致错误:

hello()
def hello():
    print('Hi!')

但是在如下代码中:

def func():
    hello()

def hello():
    print('Hi!')

func() 

hello() 函数在定义之前被 func() 调用,它仍然有效,我不明白为什么。

那么你能否解释一下上述行为并提前致谢。

最佳答案

Python 是一种解释型语言,因此它是逐行解释的,

您的两个示例都遵循相同的逻辑,

在第二个,

funchello 已被解释,因此当您调用 func() 时,它们都是已知的并因此被执行。

def func():
    hello()

--> 在这一层 func 是已知的但还没有执行(调用)

def hello():
    print('Hi!')

--> 在这一层,func 和 hello 都是已知的但还没有执行(调用)

func()

--> 最后调用func时,不管funchello是什么顺序。它们是已知的并且在内存中有一个地址。

关于python - 在 python 3.x 中声明其主体之前调用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37775737/

相关文章:

python - super().method() 与 super(self.__class__,self).method() 之间的区别

c++ - 是否有无限参数序列的模板?

javascript - 有人可以在 javascript 示例中解释这个 "passing arguments"吗?

c - 将矩阵传递给函数,C

python - 一个比较特殊的txt文件解析

python - 在 plotly 中增加区域图的不透明度

python - 解释这个高阶函数行为

python - django 表单中的重复字段

javascript - JS : timeupdate unhide multiple divs at different times on same video, getElementbyId 问题?

c++ - C++中没有参数可变参数模板函数