python筆記(1) lambda函式踩坑

2021-10-03 19:43:24 字數 985 閱讀 9514

在進行自動化的時候寫了這麼乙個語句

check_online =

lambda x: x is

notnone

and x.get(

"is_online")==

'1'if online_status else

lambda x: x is

notnone

and x.get(

"is_online")!=

'1'

if

not online_status:

self.logger.debug(f"當前想判斷是否,校驗結果為,裝置狀態為"

)

打上斷點測試一下,輸出如下

debug: 當前想判斷是否false

,校驗結果為<

locals

>

.<

lambda

>

.<

locals

>

.<

lambda

> at 0x000001ca0da3b6a8

>

,裝置狀態為1

果然有貓膩,這裡的檢驗結果居然是乙個函式,大家都知道,python裡函式也是物件,而對於非空物件,布林判斷為true,所以這裡應該是因為返回了乙個函式物件所以一直為真通過了檢查,正確的寫法是

check_online =

lambda x: x is

notnone

and x.get(

"is_online")==

'1'if online_status else x is

notnone

and x.get(

"is_online")!=

'1'

這也說明了lamda的預設作用域包含整個冒號後面的語句

python學習筆記 lambda

之前用過lambda,但是雖然用過卻並沒有仔細的想過lambda,今天就簡單的說說lambda。還是遵循我固有的三板斧 what,how,why。1 lambda是什麼,以及怎麼用 lambda是乙個匿名函式,用法如下。a lambda x x 1上式等價與 def a x reurn x 1下面的...

Lambda學習筆記

lambda 是jdk18出的新特性,在這之前我沒這麼在意這個新特性,直至前段時間在網上看大牛的播客寫的各種框架有的使用lambda 編寫的 當時沒怎麼看明白,自己才找 相關資料寫了幾個非常簡單的demo class b author qinwei 只有 乙個抽象方法的 介面 叫做函式介面 func...

Lambda學習筆記

1.函式式程式設計思想 有輸入得到輸出的一套計算思想 即 拿資料做操作,忽略物件的複雜語法,強調做什麼,而不是以什麼形式去做 2.物件導向思想則是 必須通過物件的形式做操作 3.lambda就是函式思想 eg new thread start 形式引數 表示方法的傳參為空 箭頭 指向後面要做的事 塊...