您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

将布尔值用作整数是Pythonic吗?

将布尔值用作整数是Pythonic吗?

我会很奇怪(因为所有答案都拒绝使用False == 0andTrue == 1保证语言的使用),因为我声称使用该事实来简化代码是完全可以的。

从历史上看,逻辑上的正确/错误运算往往简单地0用于false和1true。在Python 2.2的整个生命周期中,Guido注意到太多的模块以诸如这样的赋值开头,false = 0; true = 1这会产生样板和无用的变化(后者是因为对正误的大写处处存在-有些使用了全部- caps,一些全小写,一些帽初始)等介绍了bool的子类int和其TrueFalse常数。

由于当时我们中的许多人担心Python新手会使用新类型和常量来 限制 该语言的功能,因此出现了很多回退,但是Guido坚持认为我们只是悲观:没有人会如此糟糕地理解Python,例如,为了避免完全自然地使用FalseTrue作为列表索引,或者避免总和,或者避免其他如此清晰而有用的习惯用法

该线程的答案证明我们是正确的:正如我们所担心的那样,人们对这种类型和常量的作用 已经 产生了完全的误解,人们 正在 回避,更糟糕的是,敦促其他人避免使用完全自然的Python构造,而赞成没用的回转。

为了应对这种误解,我敦促每个人都将 Python用作Python , 试图将其引入功能和偏好样式完全不同的其他语言中。 ,True和False像1和0一样为99.9%, 唯一 不同的是它们的形式str(...)(因此repr(...))不同-对于除字符串化之外的 所有 其他操作,可以随意使用它们而不会扭曲。用于索引,算术,位运算等,等等,等等。

python 2022/1/1 18:42:23 有314人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶