繁体   English   中英

Python function 执行顺序

[英]Python function execution order

我找不到与此主题相关的任何问题。 但是 python 在前面调用的 function 完成之后是否执行 function 或者是否有任何并行执行?

例如:

def a():
    print('a')

def b():
    print('b')

a()
b()

所以在这个例子中我想知道我是否总是可以确定在function a完成调用function b ,即使function a是一个很长的脚本? 这是什么意思,所以我可以查找有关此问题的文档。

谢谢

定义函数并不意味着它的执行。 由于您首先定义a a ,因此将首先创建a的函数对象,以便调用。

您可以将其作为从上到下开始的执行时间线。

TLDR: b只会在a退出后运行。

每个 Python 线程一次只会执行一件事,并尊重表达式和语句的顺序。 在大多数情况下,这意味着执行“自上而下”,尽管函数定义、控制流和其他元素会影响执行顺序。 然而,在任何情况下都保留排序。


严格来说,Python 语言只定义了表达式执行顺序

Python 从左到右计算表达式。 请注意,在评估赋值时,右侧先于左侧进行评估。

简单语句复合语句都没有定义求值顺序。

但是,Python 是基于字节码解释虚拟机定义的,而参考实现是基于基于堆栈的字节码评估循环 Python 的所有主要实现都保留了一个接一个执行语句的可观察行为。

python中没有并行执行函数。 无论任何一个函数的计算工作量如何,上述函数都将按照调用它们的相同顺序执行。

在 python 中,函数默认按照它们出现的顺序执行。 但是,如果您以不同的顺序调用它们,它们将按原样执行。 所以在你的例子中

def a():
    print('a')
def b():
    print('b')

b()
a()

然后b()将在a()之前执行

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM