我有以下方法:
is_pending_exists, email = await self.check_for_pending_status(comment.alert_id)
if is_pending_exists:
comment['status'] = COMMENT_STATUS.PENDING
if email is not None:
comment['email'] = email
这就是我使用它的方式:
tuple
我是python中的新手。我不知道用一种方法返回True, comm.get('email')
- False
只返回一个值 - {{1}}。
有没有办法改进算法并以更加pythonic的方式重写它(我的意思是重写循环迭代)?
答案 0 :(得分:3)
如果comm.get('email')
不能<{1}}本身,您只需返回待处理评论的电子邮件(如果有)或None
否则
None
然后像这样检查:
async def check_for_pending_status(self, alert_id):
alert_comments = await get_comments(alert_id)
for comm in alert_comments:
if comm['status'] == COMMENT_STATUS.PENDING.value:
return comm.get('email')
return None
您也可以使用pending_email = await self.check_for_pending_status(comment.alert_id)
if pending_email is not None:
comment['status'] = COMMENT_STATUS.PENDING
comment['email'] = email
重写此内容,但是否更好可能是品味问题:
next
答案 1 :(得分:2)
从方法中返回tuple
非常好。
如果您不喜欢仅返回False
的事实,则可以随时返回False, None