Python 开发指南:关键字 VS 对不可变的理解

2023年 7月 12日 32.2k 0

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

除此之外,orand 还有一个延伸用法。比如,对于两个数值型而言,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__() 方法 成对出现。同理,还可以为对象定义 >=

    相关文章

    JavaScript2024新功能:Object.groupBy、正则表达式v标志
    PHP trim 函数对多字节字符的使用和限制
    新函数 json_validate() 、randomizer 类扩展…20 个PHP 8.3 新特性全面解析
    使用HTMX为WordPress增效:如何在不使用复杂框架的情况下增强平台功能
    为React 19做准备:WordPress 6.6用户指南
    如何删除WordPress中的所有评论

    发布评论