Python风格:在检查变量不是nu时,更简洁地重命名变量的方法

2024-10-01 07:39:22 发布

您现在位置:Python中文网/ 问答频道 /正文

在Python中,我经常发现自己在编写以下稍微有些笨拙的代码:

if data['name'] is not None:
    name = data['name']
    # do stuff with 'name' over many lines
    # hence bothering to rename it at all!
    $('#myname').text(name)...

前两行是否可以折叠成一行,或者全部在condition语句中?在


Tags: 代码namenonedataifiswithnot
3条回答

这是一种一行完成的方法。我建议你坚持你已经在做的来提高可读性:

for name in (data['name'],) if data['name'] else ():
    print name

您可以将else与for循环一起使用,它的流程与if语句相同。它看起来很奇怪,比使用if要简单得多。在

在某些情况下,例如字符串名,您可以简单地执行以下操作

name = data['name'] or ''

一种通用的方法是使用if-else速记

^{pr2}$

或者你愿意的话(我更喜欢上面的一个,因为主要任务在开始,例外情况在结尾)

name = '' if data['name'] is None else data['name']

你可以:

try:
   name = data['name']
except KeyError:
   pass

使用该键,如果它不在dict中,将引发并捕获异常。(参考EAFP

或者使用dict.get方法:

^{pr2}$

相关问题 更多 >