第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何通過(guò)名稱(chēng)(字符串)調(diào)用當(dāng)前函數(shù)中定義的函數(shù)

如何通過(guò)名稱(chēng)(字符串)調(diào)用當(dāng)前函數(shù)中定義的函數(shù)

慕神8447489 2023-03-16 16:32:04
當(dāng)名稱(chēng)存儲(chǔ)在字符串中時(shí)如何調(diào)用函數(shù),已經(jīng)得到解答。我想知道的是,如果我要調(diào)用的函數(shù)是在我的本地范圍內(nèi)定義的,我該怎么做。這與其他問(wèn)題不同,因?yàn)楫?dāng)函數(shù)在另一個(gè)函數(shù)內(nèi)部時(shí),它們不是指按名稱(chēng)調(diào)用函數(shù)。例如def outer():       def inner():        # code for inner    method_to_call = 'inner'       # call inner by the value of method_to_call那么在上面的代碼中,我該如何調(diào)用由中的值定義的函數(shù)呢method_to_call?
查看完整描述

2 回答

?
臨摹微笑

TA貢獻(xiàn)1982條經(jīng)驗(yàn) 獲得超2個(gè)贊

您可以使用locals():


def outer():

    def inner():

        print("Called.")


    method_to_call = 'inner'


    locals()[method_to_call]()

呼叫后outer,“呼叫”。被打印出來(lái)。


注意如果有不可調(diào)用的named會(huì)報(bào)錯(cuò)inner(比如havinginner = "abc"會(huì)導(dǎo)致這個(gè))。


但是,正如評(píng)論所說(shuō),這僅在您從其他地方獲取名稱(chēng)inner(比方說(shuō)輸入)時(shí)才有用。如果您事先已經(jīng)知道要調(diào)用的本地函數(shù),最好inner直接使用而不是通過(guò)locals()。


查看完整回答
反對(duì) 回復(fù) 2023-03-16
?
米琪卡哇伊

TA貢獻(xiàn)1998條經(jīng)驗(yàn) 獲得超6個(gè)贊

在 Python 中,您可以使用它eval來(lái)將任何字符串轉(zhuǎn)換為代碼并執(zhí)行它。


def outer():

    def inner():

        # code for inner


    method_to_call = 'inner'


    eval(method_to_call + '()')

請(qǐng)注意,該字符串必須包含有效的 Python 代碼,因此在這種情況下,您需要將括號(hào) () 添加到函數(shù)名稱(chēng),以創(chuàng)建一個(gè)調(diào)用語(yǔ)句,就像您在正常調(diào)用中編寫(xiě)的那樣。


查看完整回答
反對(duì) 回復(fù) 2023-03-16
  • 2 回答
  • 0 關(guān)注
  • 147 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)