我们知道如何bool()
作用于各种 python 对象,例如str
, int
, list
.
这是一个关于反向的问题。
您可以将 bool 转换为 int 为
>>> int(True)
1
>>> int(False)
0
我认为这有点道理,但我们得到了字符串
>>> str(False)
'False'
>>> str(True)
'True'
False
我不明白,因为首先它似乎暗示了and之间的某种关系'False'
,这似乎只在代码级别相关。如果要以这种方式处理代码中编写的内容,那么它是如何工作的...
>>> str(not True)
'False'
其次,这并不明显是为了一致性,因为
>>> bool(str(False))
True
我的问题是......有没有理由允许我们bool
以str
这种方式投射?list
例如不允许它...
>>> list()
[]
>>> bool()
False
>>> bool(list())
False
>>> list(bool())
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'bool' object is not iterable