簡體   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