Python中的Pass和None之间有什么区别

GSA*_*SAT 7 python keyword semantics

我个人想知道使用Pass和None之间的语义差异.我无法找到任何执行上的差异.

PS:我无法在SO中找到任何类似的问题.如果您找到一个,请指出.

谢谢!

pok*_*oke 9

pass是一份声明.因此,它可以在任何地方使用,语句可以用来什么都不做.

None是一个原子,因此它是最简单的表达形式.它也是"无"的关键字和常量值(唯一的实例NoneType).因为它是一个表达式,所以在每个地方都有一个表达式是有效的.

通常,pass用于表示空函数体,如以下示例所示:

def foo():
    pass
Run Code Online (Sandbox Code Playgroud)

此函数不执行任何操作,因为它的唯一语句是无操作语句pass.

由于表达式也是一个有效的函数体,您也可以使用None以下函数编写:

def foo():
    None
Run Code Online (Sandbox Code Playgroud)

虽然函数的行为相同,但它有点不同,因为表达式(虽然常量)仍将被评估(尽管立即被丢弃).