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

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

如何在python中使用回調(diào)函數(shù)?

如何在python中使用回調(diào)函數(shù)?

紫衣仙女 2021-03-30 21:15:59
我想知道如何正確使用python 2.7回調(diào)函數(shù)。我的代碼中有來(lái)自Cherrypy auth示例的一些回調(diào)函數(shù)。(這些回調(diào)函數(shù)返回的值可以評(píng)估為T(mén)rue或False,這取決于登錄的用戶(hù)是否在組中。)我不知道是否執(zhí)行了回調(diào),是否編寫(xiě)了如下代碼:給定庫(kù)中的定義是:def member_of(groupname):    def check():        if groupname == 'admin':          if cherrypy.request.login == 'joe':            return True          if cherrypy.request.login == 'toni':            return True          return False        return False        # .... (other groups checked in the same way)    return check # returns a callback function from my understanding?如何在代碼中應(yīng)用和執(zhí)行回調(diào)?如果我這樣說(shuō): if member_of('admin'):    do_something()  else:    do_something_else()這將執(zhí)行回叫并檢查管理員組嗎?還是會(huì)找出“ member_of”的值是否是一個(gè)函數(shù)定義,而一個(gè)函數(shù)定義可能始終是“ True”值(或者可能是False值),但兩者都是錯(cuò)誤的,因?yàn)樗枰獔?zhí)行你能啟發(fā)我嗎?如何確保執(zhí)行了回調(diào)?我該如何傳遞它呢?
查看完整描述

2 回答

?
侃侃無(wú)極

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

在python中,就像許多其他語(yǔ)言一樣,變量也可以包含一個(gè)函數(shù),您可以像包含數(shù)字或字符串的其他變量一樣將它們傳遞給其他對(duì)象。


CherryPy的member_of函數(shù)本身在您的示例中確實(shí)返回了一個(gè)函數(shù)。


我通過(guò)簡(jiǎn)單的步驟對(duì)其進(jìn)行解釋?zhuān)?/p>


如果您編寫(xiě)member_of()它,則返回函數(shù)member_of()的結(jié)果,check在這種情況下,該函數(shù)的名稱(chēng)為該函數(shù)。


cb_function = member_of('admin')

此時(shí),變量cb_function保存調(diào)用函數(shù)的結(jié)果member_of,并在最后一行member_ofreturn中check,它在函數(shù)內(nèi)定義member_of為另一個(gè)函數(shù)!


您必須再次調(diào)用第一個(gè)結(jié)果,因?yàn)槟梢圆⑶冶仨氁耘c在當(dāng)前上下文中定義的局部函數(shù)幾乎相同的方式來(lái)對(duì)待它,以通過(guò)以下操作獲得最終結(jié)果:


my_result =  cb_function()

然后,您將繼續(xù)使用結(jié)果。例如,您可以檢查其布爾值:


if my_result:

  # do something

  ...   

上面的3個(gè)步驟可以寫(xiě)得更短:


cb_function = member_of('admin')

  if cb_function():

    # do something

    ...

甚至更短:


if member_of('admin')():

  # do something

  ...  

起初,在python中擁有double可能看起來(lái)有點(diǎn)奇怪()(),但是如果您考慮一會(huì)兒,這是很有意義的。


查看完整回答
反對(duì) 回復(fù) 2021-04-01
?
千巷貓影

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

如果執(zhí)行它,這很簡(jiǎn)單。

member_of()將返回方法對(duì)象檢查。您必須執(zhí)行以下操作才能獲得結(jié)果member_of('admin')()

k=member_of('admin')
if k():

做你的任務(wù)。


查看完整回答
反對(duì) 回復(fù) 2021-04-01
  • 2 回答
  • 0 關(guān)注
  • 185 瀏覽
慕課專(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)