为了账号安全,请及时绑定邮箱和手机立即绑定

Python:lamda与if / else

Python:lamda与if / else

MMTTMM 2021-05-12 18:22:45
我试图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


查看完整回答
反对 回复 2021-05-18
?
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


查看完整回答
反对 回复 2021-05-18
  • 2 回答
  • 0 关注
  • 425 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信