Python 短路条件写法
这是一个简单的问题...
在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)