在進行自動化的時候寫了這麼乙個語句
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 形式引數 表示方法的傳參為空 箭頭 指向後面要做的事 塊...