Python 短路条件写法

18 投票
2 回答
17944 浏览
提问于 2025-04-16 21:00

这是一个简单的问题...

在Python中,你可以这样做:

foo = foo1 if bar1 else foo2

这很不错,但我怎么才能直接得到一个真或假的结果,而不需要写

foo = True if bar1 else False

比如在JavaScript中,你可以通过这样做来强制转换成布尔值:

var foo = !!bar1;

2 个回答

1

在Python中,和JavaScript一样,你可以使用逻辑否定。这是通过关键字 not 来实现的。不过,bool 这个名字有个缺点,就是它不是一个保留字,所以你可以随意改变它的值。如果你把 bool 变量的值设成一个不可调用的东西,比如 bool = 7,那就会出现错误。如果你把 bool 变量的值设成一个可调用的东西,比如 bool = int,那么你可能会得到一个意想不到的结果。

JavaScript

!!bar1

Python

not not bar1
33

在这个对象上调用 bool

bool(bar1)

撰写回答