亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

python做中學(八)匿名函數lambda的用法

系統 1934 0

  匿名函數,顧名思義即沒有名稱的函數,和def定義的函數的最大區別在于匿名函數創建后返回函數本身(即匿名函數不需要return來返回值),表達式本身結果就是返回值,而def創建后則賦值給一個變量名,在Python中,我們利用關鍵詞lambda創建匿名函數,以下是匿名函數lambda表達式的形式:

  lambda arg1,arg2,.....argn:expression

以下為一些lambda的特點:

  1. lambda 是一個表達式,而不是一個語句,即我們可以在任何可以使用表達式的場景一樣使用lambda。
  2. lambda 的主體也是一個表達式,即和def定義的函數一樣,lambda也有函數主體,不過lambda的主體僅僅是一個表達式,所以其使用的功能受到較大的限制。

  閑話少說,言歸正傳,還是栗子來的比較實惠:

匿名函數使用:

            
               1
            
            
              #
            
            
              python3
            
            
               2
            
            
               3
            
             test1 = 
            
              lambda
            
            
               :True

            
            
               4
            
            
              #
            
            
               切記這個是個函數,要加括號
            
            
               5
            
            
              print
            
            
              (test1())

            
            
               6
            
            
               7
            
             test2 = 
            
              lambda
            
             x: x + 1

            
               8
            
            
              print
            
            (test2(2
            
              ))

            
            
               9
            
            
              10
            
             test3 = (
            
              lambda
            
             x, y: x + y)(3,4
            
              )

            
            
              11
            
            
              #
            
            
               切記默認參數已經加了,這里不需要加括號
            
            
              12
            
            
              print
            
            (test3)
          

? 測試結果:

            
              True

            
            3
7
          

? ?項目實戰:

  最近運行一段函數的時候,出現一個錯誤:

t.timeout.connect(self.updateData())
TypeError: argument 1 has unexpected type 'NoneType'

修正結果:

?t.timeout.connect(lambda:self.updateData())

即可,原因是什么呢?

個人理解,這里使用了匿名函數可以的原因是這兩個是不同的函數了,因為connect連接的是一個返回值,而self.updateData() 返回的是一個函數的返回值,是沒有值,所以會上報這個錯誤,

這里還有一個解決方法,就是這樣寫也行了:

t.timeout.connect(self.updateData)


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 国产精品99r8在线观看 | 手机看福利片 | 日韩高清在线日韩大片观看网址 | 国产乱叫456在线 | 黄wwwwww| 亚洲在线观看视频 | 精品国产品香蕉在线 | 国产色婷婷免费视频 | 亚洲精品视频久久 | 91最新视频在线观看 | 天天干夜夜看 | 国产欧美成人免费观看视频 | 一本久久a久久精品亚洲 | 亚洲你xx我xx网站 | 青青久久精品 | 国产伦精品一区二区三区高清 | 国内精品久久久久久久久久久久 | 欧洲成人爽视频在线观看 | 久青草国产高清在线视频 | 久久久无码精品亚洲日韩按摩 | 自拍亚洲午夜伦li片影院 | 日韩中文字幕在线看 | 福利午夜影院 | 中文字幕专区高清在线观看 | 精品一区二区三区免费观看 | 天天做天天爱夜夜爽毛片毛片 | 中文字幕一区二区三区永久 | 亚洲一区二区三区一品精 | 中国一级毛片免费观看 | 99热这里有精品 | 在线a毛片免费视频观看 | 99re9精品视频在线 | 特级女人十八毛片a级 | 伊人第一页 | 香蕉视频网站入口 | 久久亚洲精品国产精品婷婷 | 免费视频网站在线观看黄 | 免费一级特黄3大片视频 | 高清视频在线播放 | 奇米影视777888| 国产福利一区二区在线观看 |