gpt4 book ai didi

python - 在赋值中提供后备值的最 Pythonic 方式是什么?

转载 作者:IT老高 更新时间:2023-10-28 20:50:22 25 4
gpt4 key购买 nike

在 Perl 中,能够分配对象通常很好,但如果分配的变量是“undef”,则指定一些备用值。例如:

my $x = undef;
my $y = 2;
my $a = $x || $y;

之后,

$a == 2

如果 x 的值为 None,是否有一种简洁的方法可以在 Python 中实现这一点,或者是否可以使用完整的...

if x is not None
a = x
else
a = y

... 是实现这一目标的最 Pythonic 方式吗?

编辑:抱歉,正如几位评论者所指出的那样,我并不是真的在谈论未定义的值,而是在 Perl 中的“未定义”,这并不是一回事。但是最初措辞的问题并没有说明这一点。

最佳答案

从 2.5 开始:

如果您想选择无:

a = x if x is not None else y 

如果您还想使用空字符串、false0 等:

a = x if x else y 

a = x or y 

至于未定义(未定义,也就是未绑定(bind)):

try:
a = x
except NameError:
a = y

或者更老套(我不太推荐,但它很短):

a = vars().get('x',y)

关于python - 在赋值中提供后备值的最 Pythonic 方式是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/768175/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com