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

将布尔值用作整数是Pythonic吗?,第1张

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

我会很奇怪(因为所有答案都拒绝使用

False == 0
and
True == 1
保证语言的使用),因为我声称使用该事实来简化代码是完全可以的。

从历史上看,逻辑上的正确/错误运算往往简单地

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

由于当时我们中的许多人担心Python新手会使用新类型和常量限制
该语言的功能,因此出现了很多回退,但是Guido坚持认为我们只是悲观:没有人会如此糟糕地理解Python,例如,为了避免完全自然地使用

False
True
作为列表索引,或者避免总和,或者避免其他如此清晰而有用的习惯用法。

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

为了应对这种误解,我敦促每个人都将 Python用作Python而不是 试图将其引入功能和偏好样式完全不同的其他语言中。
在Python中 ,True和False像1和0一样为99.9%, 唯一
不同的是它们的形式

str(...)
(因此
repr(...)
)不同-对于除字符串化之外的 所有
其他 *** 作,可以随意使用它们而不会扭曲。用于索引,算术,位运算等,等等,等等。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5617257.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-15
下一篇 2022-12-15

发表评论

登录后才能评论

评论列表(0条)

保存