簡體   English   中英

Python Lambda錯誤的語法?

[英]Python lambda wrong syntax?

我不知道如何使這項工作

default=lambda obj: return None if isinstance(obj, DataLoader)

default變量是json.dumps()的參數,因此,如果要序列化的dict包含一個DataLoader對象,則代碼可以不引發TypeError

您需要一個else子句,並刪除return

lambda obj: None if isinstance(obj, DataLoader) else obj

lambda表達式必須返回某些內容 ,但它們不需要return ,它們的一個表達式始終是返回值。

條件表達式同樣必須產生一些東西 ; isinstance(obj, DataLoader)為false時,表達式應產生什么?

首先,在創建lambda表達式時 ,您必須省略return關鍵字。

三元運算符( 也稱為條件表達式 )的工作方式如下:

a if b else c

...會返回a ,如果bTrue ,將返回c否則(如果bFalse )。

您缺少else部分。

最后,您的代碼應如下所示:

default = lambda obj: None if isinstance(obj, DataLoader) else obj

選擇當obj不是DataLoader的實例時要讓lambda函數返回的內容,這里我為您選擇了obj ,但這取決於您。

最后,我在=周圍添加了一些空格,因為這是您應該這樣做的方式(如PEP8中所述)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM