Python中的Pass和None有什么区别
What is the difference between Pass and None in Python
我个人想知道使用 Pass 和 None 之间的语义差异。我无法在执行中找到任何差异。
PS:我无法在 SO 中找到任何类似的问题。如果你找到了,请指出来。
谢谢!
简单来说,None
是一个可以分配给表示空的变量的值。它可以用作默认状态:
a = None
def f():
a = 5
f()
pass
是一个类似于 nop 的语句。它在定义函数存根时很有用,例如:
def f():
pass
在类 C 语言中,您可以通过简单地在大括号之间不放置任何内容来定义空函数 void f() { }
,但是由于 Python 使用缩进而不是大括号来定义块,您必须把 something 放在正文中,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
...
pass
是一个 语句 。因此它可以在任何地方使用,一个语句可以什么都不做。
None
is an atom 以及最简单形式的 表达式 。它也是“无”的关键字和常量值(NoneType
的唯一实例)。因为它是一个表达式,所以它在任何需要表达式的地方都是有效的。
通常,pass
用于表示空函数体,如下例所示:
def foo():
pass
这个函数什么都不做,因为它唯一的语句是无操作语句pass
。
因为表达式也是一个有效的函数体,你也可以这样写 None
:
def foo():
None
虽然函数的行为相同,但还是有一点不同,因为表达式(常量)仍将被计算(尽管立即被丢弃)。
我个人想知道使用 Pass 和 None 之间的语义差异。我无法在执行中找到任何差异。
PS:我无法在 SO 中找到任何类似的问题。如果你找到了,请指出来。
谢谢!
简单来说,None
是一个可以分配给表示空的变量的值。它可以用作默认状态:
a = None
def f():
a = 5
f()
pass
是一个类似于 nop 的语句。它在定义函数存根时很有用,例如:
def f():
pass
在类 C 语言中,您可以通过简单地在大括号之间不放置任何内容来定义空函数 void f() { }
,但是由于 Python 使用缩进而不是大括号来定义块,您必须把 something 放在正文中,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
...
pass
是一个 语句 。因此它可以在任何地方使用,一个语句可以什么都不做。
None
is an atom 以及最简单形式的 表达式 。它也是“无”的关键字和常量值(NoneType
的唯一实例)。因为它是一个表达式,所以它在任何需要表达式的地方都是有效的。
通常,pass
用于表示空函数体,如下例所示:
def foo():
pass
这个函数什么都不做,因为它唯一的语句是无操作语句pass
。
因为表达式也是一个有效的函数体,你也可以这样写 None
:
def foo():
None
虽然函数的行为相同,但还是有一点不同,因为表达式(常量)仍将被计算(尽管立即被丢弃)。