0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

python函數(shù)與函數(shù)之間的調(diào)用

麥辣雞腿堡 ? 來源:Python都知道 ? 作者:Python都知道 ? 2023-10-04 17:17 ? 次閱讀

函數(shù)與函數(shù)之間的調(diào)用

3.1 第一種情況 程序代碼如下:

def x(f):  
    def y():  
        print(1)  
    return y
def f():  
    print(2)
x(f)

運(yùn)行結(jié)果:

無結(jié)果

分析:因?yàn)榈?行中的x(f)中的f沒有帶括號,f只是一個(gè)普通的參數(shù),所以程序只調(diào)用執(zhí)行了x(f)函數(shù),沒有調(diào)用執(zhí)行f()函數(shù)。x(f)函數(shù)中雖然也定義了y()函數(shù),但是x(f)函數(shù)中沒有調(diào)用執(zhí)行y()函數(shù),只是執(zhí)行了return y。而y變量也沒有值,所以整個(gè)程序的返回值就為無結(jié)果。

3.2 第二種情況 程序代碼如下:

def x(f):  
    def y():  
        print(1)  
    return y
def f():  
    print(2)
x(f())

運(yùn)行結(jié)果:

2

分析:因?yàn)榈?行中的x(f())中的f()帶括號,所以程序先調(diào)用執(zhí)行f()函數(shù),先輸出2。然后2作為參數(shù)傳入到x(f)函數(shù)中,程序開始調(diào)用執(zhí)行x(f)函數(shù)。x(f)函數(shù)中雖然也定義了y()函數(shù),但是x(f)函數(shù)中沒有調(diào)用執(zhí)行y()函數(shù),只是執(zhí)行了return y。而y變量也沒有值,所以調(diào)用執(zhí)行x(f)函數(shù)沒有產(chǎn)生任何結(jié)果。因此該程序最終只輸出了2。

3.3 第三種情況 程序代碼如下:

def x(f):  
    def y():  
        print(1)  
    return y()
def f():  
    print(2)
x(f)

運(yùn)行結(jié)果:

1

分析:因?yàn)榈?行中的x(f)中的f沒有帶括號,f只是一個(gè)普通的參數(shù),所以程序只調(diào)用執(zhí)行了x(f)函數(shù),沒有調(diào)用執(zhí)行f()函數(shù)。x(f)函數(shù)中也定義了y()函數(shù),并且返回是y()函數(shù)。因此程序調(diào)用執(zhí)行了y()函數(shù),輸出結(jié)果是1。

3.4 第四種情況

def x(f):  
    def y():  
        print(1)  
    return y()
def f():  
    print(2)
x(f())

運(yùn)行結(jié)果:

2  
1

分析:因?yàn)榈?行中的x(f())中的f()帶括號,所以程序調(diào)用執(zhí)行了f()函數(shù),先輸出2。然后2作為參數(shù)傳入到x(f)函數(shù)中,程序開始調(diào)用執(zhí)行x(f)函數(shù)。x(f)函數(shù)中也定義了y()函數(shù),并且返回是y()函數(shù)。因此程序也調(diào)用執(zhí)行了y()函數(shù),也輸出了1。最終該程序先后輸出了2和1。

3.5 第五種情況 程序代碼如下:

def x(f):  
    def y():  
        print(1)  
        print(f())  
    return y()
def f():  
    #print(2)  
    return 2
x(f)

運(yùn)行結(jié)果:

1  
2

分析:因?yàn)榈?行中的x(f)中的f沒有帶括號,f只是一個(gè)普通的參數(shù),所以程序只是先調(diào)用執(zhí)行了x(f)函數(shù)。在x(f)函數(shù)中也定義了y()函數(shù),而且返回值是y()函數(shù),所以程序會(huì)調(diào)用執(zhí)行y()函數(shù)。在y()函數(shù)中先是執(zhí)行print(1)語句,輸出1,接著執(zhí)行print(f())語句,所以程序在這時(shí)也會(huì)調(diào)用執(zhí)行f()函數(shù),輸出2。最終該程序先后輸出了1和2。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報(bào)投訴
  • 程序
    +關(guān)注

    關(guān)注

    116

    文章

    3756

    瀏覽量

    80751
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4277

    瀏覽量

    62323
  • 變量
    +關(guān)注

    關(guān)注

    0

    文章

    613

    瀏覽量

    28306
  • python
    +關(guān)注

    關(guān)注

    55

    文章

    4767

    瀏覽量

    84375
收藏 人收藏

    評論

    相關(guān)推薦

    一文詳解python調(diào)用函數(shù)

    函數(shù)被定義后,本身是不會(huì)自動(dòng)執(zhí)行的,只有在被調(diào)用后,函數(shù)才會(huì)被執(zhí)行,得到相應(yīng)的結(jié)果。但是在 Python 中我們要注意一個(gè)關(guān)鍵點(diǎn),就是Python
    發(fā)表于 10-01 10:45 ?619次閱讀

    如何查看及更改函數(shù)/函數(shù)塊的調(diào)用環(huán)境

    模塊化設(shè)計(jì)的思想是把一些相似的功能(比如電機(jī)控制、閥控制)設(shè)計(jì)成函數(shù)函數(shù)塊,這樣就可以反復(fù)調(diào)用。其優(yōu)點(diǎn)是:使程序架構(gòu)更加清晰,避免重復(fù)編寫相似功能的代碼。不過可能會(huì)產(chǎn)生一個(gè)疑惑:既然PLC的程序
    的頭像 發(fā)表于 11-17 09:08 ?839次閱讀
    如何查看及更改<b class='flag-5'>函數(shù)</b>/<b class='flag-5'>函數(shù)</b>塊的<b class='flag-5'>調(diào)用</b>環(huán)境

    python普通函數(shù)創(chuàng)建與調(diào)用

    python普通函數(shù)創(chuàng)建與調(diào)用函數(shù)是一種僅在調(diào)用時(shí)運(yùn)行的代碼塊。您可以將數(shù)據(jù)(稱為參數(shù))傳遞到函數(shù)
    發(fā)表于 03-01 16:32

    C++教程之函數(shù)的遞歸調(diào)用

    C++教程之函數(shù)的遞歸調(diào)用 在執(zhí)行函數(shù) f 的過程中,又要調(diào)用 f 函數(shù)本身,稱為函數(shù)的遞歸
    發(fā)表于 05-15 18:00 ?35次下載

    詳解python普通函數(shù)創(chuàng)建與調(diào)用

    函數(shù)是一種僅在調(diào)用時(shí)運(yùn)行的代碼塊。您可以將數(shù)據(jù)(稱為參數(shù))傳遞到函數(shù)中,然后由函數(shù)可以把數(shù)據(jù)作為結(jié)果返回。
    的頭像 發(fā)表于 03-01 16:32 ?1830次閱讀

    系統(tǒng)調(diào)用與普通的函數(shù)調(diào)用之間的區(qū)別

    函數(shù)之間是可以相互調(diào)用的,這很簡單很happy有沒有。 要知道是代碼、是函數(shù)就可以相互調(diào)用,不管你用什么語言寫的。
    的頭像 發(fā)表于 02-15 11:47 ?3375次閱讀
    系統(tǒng)<b class='flag-5'>調(diào)用</b>與普通的<b class='flag-5'>函數(shù)</b><b class='flag-5'>調(diào)用之間</b>的區(qū)別

    Python入門之什么是函數(shù)

    Python函數(shù)比我們想象的更為靈活。由于Python函數(shù)是對象,所以函數(shù)對象可以賦值給其他的名字、傳遞給其他
    的頭像 發(fā)表于 02-21 14:24 ?478次閱讀

    Python函數(shù)調(diào)用是什么

    定義函數(shù)的關(guān)鍵字def。def后面緊跟空格。函數(shù)名可以自己命名。
    的頭像 發(fā)表于 02-23 10:57 ?919次閱讀

    C語言函數(shù)調(diào)用的形式及過程

    C語言函數(shù)調(diào)用時(shí)的數(shù)據(jù)傳遞 在調(diào)用有參函數(shù)時(shí),主調(diào)函數(shù)和被調(diào)函數(shù)
    的頭像 發(fā)表于 03-10 14:28 ?1568次閱讀

    什么是函數(shù)調(diào)用?

    函數(shù)調(diào)用,就是使用我們已經(jīng)定義好的函數(shù),或者C語言自帶的庫函數(shù)
    的頭像 發(fā)表于 04-04 17:21 ?5574次閱讀

    SCL中調(diào)用函數(shù)的示例

    在此,可插入函數(shù) (FC) 調(diào)用函數(shù)塊 (FB) 調(diào)用。函數(shù)塊可作為單實(shí)例、多重實(shí)例或參數(shù)實(shí)例進(jìn)行調(diào)用
    的頭像 發(fā)表于 06-06 10:18 ?2039次閱讀

    python定義函數(shù)調(diào)用函數(shù)的順序

    定義函數(shù)調(diào)用函數(shù)的順序 函數(shù)被定義后,本身是不會(huì)自動(dòng)執(zhí)行的,只有在被調(diào)用后,函數(shù)才會(huì)被執(zhí)行,得
    的頭像 發(fā)表于 10-04 17:17 ?1240次閱讀

    Python 函數(shù)參數(shù)分類

    文章應(yīng)該對你會(huì)有不小的幫助。 接下來是正文。 1. 參數(shù)分類 函數(shù),在定義的時(shí)候,可以有參數(shù)的,也可以沒有參數(shù)。 從函數(shù)定義的角度來看,參數(shù)可以分為兩種: 必選參數(shù) :調(diào)用函數(shù)時(shí)必須要
    的頭像 發(fā)表于 10-21 10:45 ?661次閱讀

    python如何定義一個(gè)函數(shù)

    一、Python3 函數(shù) 函數(shù)是組織好的,可重復(fù)使用的,用來實(shí)現(xiàn)單一,或相關(guān)聯(lián)功能的代碼段。 函數(shù)能提高應(yīng)用的模塊性,和代碼的重復(fù)利用率。你已經(jīng)知道
    的頭像 發(fā)表于 11-14 11:26 ?671次閱讀

    python調(diào)用math函數(shù)的方法

    中。本文將詳細(xì)介紹math模塊中的各種數(shù)學(xué)函數(shù)調(diào)用方法,包括函數(shù)的功能、參數(shù)的使用和返回值的含義等方面,以幫助讀者更好地理解和應(yīng)用這些函數(shù)。 一、導(dǎo)入math模塊 要使用math模塊
    的頭像 發(fā)表于 11-22 11:01 ?2674次閱讀