Python 关键字
or & and & not
为了提高代码的可读性,Python 分别使用 or 代替了 “或”,and 代替了 “与”,not 代替了 “非”,这些运算符常用于条件判断式。比如:
print(not False) # True
print(False or False) # False
print(False or True) # True
print(True and False) # Fale
print(True and True) # True
print(1 not in [1, 2, 3]) # False
除此之外,or 和 and 还有一个延伸用法。比如,对于两个数值型而言,x or y 可以返回两者中的较小值,而 x and y 可以返回两者中的较大值。如:
print(2 or 3) # 2
print(3 and 5) # 5
pass
pass 关键字充当 Python 语法上的占位符。比如:
if x >= 10:
pass
else:
print("x >= 10")
或者将一些仅声明但未给出实现的函数 foo 加上 pass 以保持语法完整。比如:
def foo(): # TODO waiting for implementing
pass
None
None 在 Python 中作为一个特殊的常量,它的类型为 NoneType。它代表语义上的空值,但自身既不是 0,也不是 False。
None 可以用于设计部分函数 ( partial function )。比如说,当某个函数 f 选择不去对某些输入进行处理时,它可以不选择抛出异常或者是其它预设好的默认值,而是简单地以 None 代替。
def div(x, y):
if y == 0:
return None
else:
return x / y
print(div(3, 0))
这种设计思想被广泛用于函数式编程。比如:Scala:函数式编程下的异常处理 – 掘金 (juejin.cn)
*is & ==
is 关键字常和 == 放到一起去讨论。两者的主要区别是:
== 进行的是值比较,强调相等。is 进行的是引用比较,强调相同。在 Python 中,可以通过内置的 id() 函数获得某个对象的全局标识号,该标识号的作用相当于 C 语言的地址。若两者的标识号相同,则认为两者的引用相同。此时使用 is 比较的结果为 True,否则为 False。
而对象的 == 操作符底层指向 __eq__() 方法,它和 __hash__() 方法 成对出现。同理,还可以为对象定义 >=,


