中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python函數的兩種嵌套方法怎么使用

發布時間:2022-04-02 09:10:06 來源:億速云 閱讀:413 作者:iii 欄目:開發技術

本篇內容介紹了“python函數的兩種嵌套方法怎么使用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

交叉嵌套

交叉嵌套的方式是在本函數中調用同一級或上一級函數的嵌套方法:

def func(foo):
    print(1)
    foo()
    print(3)
    
def a():
    print(1)

b = func(a)
print(b)

輸出的結果為:

1
1
3
None

首先,程序會將 Python 文件中頂格的代碼運行。函數 func 和 a 都是先開辟內存空間存儲起來,但不會被執行。當程序走到賦值操作時,會先執行等號右邊的代碼。函數 func 被調用,函數 a 作為參數被傳到 func 中。func 函數被執行,順序也是從上往下,先是把 1 打印出來,然后調用參數 foo。

需要注意的是,foo 是形參,實參是 a。調用 foo 在此時的意思是調用函數 a。函數 a 被調用,又打印出一個 1 來。函數 a 運行完畢,返回至函數 func,繼續執行下面的代碼,打印出 3 來。最后,函數默認返回 None,賦值給 b。程序運行結束。

再看下面的代碼:

def func():
    print(1)
    print("我太難了")
    print(2)

def foo(b):
    print(3)
    ss = b()
    print(ss)
    print(4)

def f(a,b):
    a(b)

f(foo,func)

輸出的結果為:

3
1
我太難了
2
None
4

跟上面一樣,先將函數全都加載到新開辟的內存空間中,但不執行。到最后 f 函數被調用,foo 和 func 兩個函數作為參數被傳到函數 f 中。在函數 f 中,foo 函數被調用,參數為 func 函數。進入到 foo 函數,先打印 3。到賦值語句,先執行等號右邊的代碼,函數 func 被調用。

在函數 func 中,打印三個內容 1、我太難了 和 2。函數默認返回值為 None,被賦值給 ss。打印 ss 就是打印 None。最后打印 4,然后返回到函數 f,再返回到全局空間。執行結束。

回環函數

回環函數就是在函數中調用下級函數的嵌套方法:

def func(a,b):
    def foo(b,a):
        print(b,a)
    return foo(a,b) #先執行函數調用
a = func(4,7)
print(a)

輸出的結果為:

4 7
None

函數依然先存儲在新開辟的空間中不會被調用。運行到賦值語句時,還是先執行等號右邊的代碼,將兩個數字傳到函數 func中。在函數內部,依然是先開辟空間把函數 foo 放進去。運行到 return 不會馬上終止函數,而是先運行 return 后面的代碼。foo 函數被調用,傳進去的值是 4 和 7,然后打印出來。

需要注意的是,函數 foo 的形參與函數 func 的形參是相同的,不要給搞混了。日常寫代碼時不建議這樣使用。打印出 4 和 7 之后,運行到函數最后一行,函數默認返回 None。然后再賦值給 a,打印出來。

“python函數的兩種嵌套方法怎么使用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

星子县| 龙岩市| 新河县| 霍山县| 资兴市| 图片| 随州市| 万年县| 报价| 务川| 友谊县| 屏边| 古浪县| 阿拉善右旗| 攀枝花市| 靖远县| 元谋县| 土默特左旗| 宝兴县| 南木林县| 台东市| 山阴县| 梨树县| 靖西县| 金沙县| 仙桃市| 长沙市| 大余县| 民权县| 内丘县| 湖北省| 长武县| 永新县| 弥勒县| 大竹县| 韶关市| 尤溪县| 平邑县| 祥云县| 桑植县| 景宁|