我个人想知道使用“Pass”和“None”之间的语义差异。我在执行中没有发现任何区别。
PS:我在SO上找不到任何类似的问题。如果您找到了,请指出。
谢谢!
None
是一个可以赋给变量的值,表示空。它作为默认状态非常有用:a = None
def f():
a = 5
f()
pass
是一个类似于nop的语句。它在您定义函数桩时非常有用,例如:
def f():
pass
在类C的语言中,你可以通过在大括号之间什么都不放来定义空函数void f() { }
,但是由于Python使用缩进而不是大括号来定义块,所以你必须在主体中放置一些东西,而pass
是惯用的放置内容。
这是关于pass
和None
之间的绝对差异
pass
(小写p):
因为Python是基于缩进的语言,所以如果你定义了一个新的方法,你应该在它后面加上一些代码。
def method_a():
some_thing = 1 # Have to do some thing
pass
关键字来解决这个问题。def method_a():
pass # Do nothing
None
:
None
关键字与 Java 或 C 等其他语言中的 null
关键字有些相似,但二者有很大的区别。它可以表示空数据或未分配数据。
[] == None
null == None
() == None
...