1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > python公司大部分编码风格_Python编码风格篇:比较运算符-阿里云开发者社区

python公司大部分编码风格_Python编码风格篇:比较运算符-阿里云开发者社区

时间:2019-05-04 23:14:50

相关推荐

python公司大部分编码风格_Python编码风格篇:比较运算符-阿里云开发者社区

前几天有看到一篇 Flask 开发团队内部 Python 编码风格指南 ,里面有一段关于比较的规范觉得很有意思:

任意类型之间的比较,使用 == 和 !=

与单例(singletons)进行比较时,使用 is 和 is not

永远不要与 True 或 False 进行比较(例如,不要这样写:foo == False,而应该这样写:not foo)

自己在写代码的时候很少去关注变量的比较要如何实现,基本都是直接使用 == 。今天就借此机会聊聊 Python 中的比较运算符。

== 与 !=

== 和 != 是等值校验。

这两个运算符是我们最熟悉不过的比较运算符了。== 会根据魔术方法 eq 检测左右两侧对象的值是否相等。

例如 x == y ,其实背后的操作是 x.__eq__(y)。

Python编码风格篇:比较运算符

is

is 是身份校验。它将检测左右两侧是否为同一个对象。

同一个对象必须满足:

值相同

内存地址相同

因此就不难理解为什么 is 和 is not 用于单例(singletons)比较了。

单例(singletons)是什么?

单例是一种设计模式,应用该模式的类只会生成一个实例。

单例模式保证了在程序的不同位置都可以且仅可以取到同一个对象实例:

如果实例不存在:会创建一个实例

如果实例已存在:会返回这个实例

not

not 是 Python 中的逻辑判断词,常用于布尔型 True 和 False。

not True -> False

not False -> True

逻辑判断

a = False

not a 为 True

if not a:

pass

判断元素是否存在

a = 100

b = [1, 2, 3]

元素 a 是否不在列表 b 中

if a not in b:

pass

总结

仅对值进行简单比较时可以使用 ==/!= 操作符:

a = 1

b = 2

if a == b:

pass

else:

pass

is 用于比较单例,例如比较 None:

if a is None:

pass

if a is not None:

pass

如果涉及布尔值 True/False 的判断,使用 not,不要直接与 True 或 False 比较:

a = False

b = True

正确的写法

if not a:

pass

if b:

pass

错误的写法

if a == False:

pass

not 还可以用于判断元素是否在列表/字典中存在。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。