我試圖lambda self.status: partial if max_refundable == amount else self.status = refunded用if / else替換成一行。但是,它不能按預期方式工作。有人知道問題出在哪里嗎?if max_refundable == amount: self.status = partialelse: self.status = refunded
2 回答

梵蒂岡之花
TA貢獻1900條經驗 獲得超5個贊
因為那是無效的語法
lambda self.status: partial if max_refundable == amount else self.status = refunded
等價于
def _lambda_func_(self.status): return partial if max_refundable == amount else self.status = refunded
這不是您想要的(self.status
不是有效的參數名稱)。您不需要功能,只需執行
self.status = partial if max_refundable == amount else refunded

MMMHUHU
TA貢獻1834條經驗 獲得超8個贊
語法如下:
a = 1
b = 3
a = a+b if a == 2 else b
在您的情況下,它看起來像這樣:
self.status = partial if max_refundable == amount else refunded
添加回答
舉報
0/150
提交
取消