处理布尔表达式时,经常会遇到这样的代码:
u = [] if not u.append(6): # Do something...
但是为什么 list.append 在布尔上下文中计算结果为 False?这是由于有意的设计决定,还是仅仅是 C 约定的结果?
大多数就地修改容器的 Python 方法都返回 None,遵循命令原则 -查询分离。根据这一原则,修改数据的方法不应返回任何值,因为它们的主要目的是改变对象的状态。这种方法有助于在检索数据的操作和更改数据的操作之间保持明确的区别。
在 list.append 的情况下,它将一个元素附加到列表的末尾,并在此过程中对其进行更改。因此,它遵循返回 None 的约定,表示它已成功将元素添加到列表中。然而,在布尔上下文中,None 被认为是 False,因此上述代码片段会出现意外的结果。
以上是为什么'list.append()”在布尔上下文中返回'False”?的详细内容。更多信息请关注PHP中文网其他相关文章!