2024-03-28 19:31:29 发布
网友
似乎pass只是一个不需要的保留字。Python可以使用一个单行None语句来完成相同的任务。在
pass
None
例如,我认为
while doing_a_thing(): pass
以及
我认为拥有pass稍微更具可读性,但在我看来,这是一个很差的权衡,与从函数/变量的选择中删除这样一个常用词相比。在
只是想知道是否有人知道更多我不知道的历史和/或Python用法。在
我要在这里把罗里背回去。在
None是一个值,而pass是一个语句。在
例如,如果你想要一个函数的默认值
def my_func(val1, val2=None): # Some stuff here
其中None用于表示val2的默认值为None。在
val2
但是,如果您有一个类,您可能会这样看到pass:
其中pass可能存在,因为您希望稍后定义__init__方法,或者表示它对类没有任何作用。在
__init__
不管怎样,pass就是说,“我可以在这里做点什么,但我不想做”。并且None是一个实际值,您明确地表示“是,我给这个值None
编辑: 我现在明白了更多的困惑。在
因为你看到了:
可以写成
class MyClass(object): def __init__(self): None
这不是Python说None在这里等同于pass。简单地说,只提供一个value作为no-op,也会产生同样的效果。我也可以这样做:
value
class MyClass(object): def __init__(self): 12
这当然没有道理,你为什么要把12放在那里?这里的重点是效果是一样的,但是在这个例子中含义是不同的。在很多情况下,None和{}不能互换,比如默认参数
12
None在Python中已经有了含义。它不是一个语句,而是a value。它可以用来标记还没有标准值的变量,或者作为不返回任何内容的函数的“返回值”。在
因此,使用它作为语句比使用新关键字pass更令人困惑。在
我要在这里把罗里背回去。在
None
是一个值,而pass
是一个语句。在例如,如果你想要一个函数的默认值
其中
None
用于表示val2
的默认值为None。在但是,如果您有一个类,您可能会这样看到
^{pr2}$pass
:其中
pass
可能存在,因为您希望稍后定义__init__
方法,或者表示它对类没有任何作用。在不管怎样,
pass
就是说,“我可以在这里做点什么,但我不想做”。并且None
是一个实际值,您明确地表示“是,我给这个值None
编辑:
我现在明白了更多的困惑。在
因为你看到了:
^{pr2}$可以写成
这不是Python说
None
在这里等同于pass
。简单地说,只提供一个value
作为no-op,也会产生同样的效果。我也可以这样做:这当然没有道理,你为什么要把}不能互换,比如默认参数
12
放在那里?这里的重点是效果是一样的,但是在这个例子中含义是不同的。在很多情况下,None
和{None
在Python中已经有了含义。它不是一个语句,而是a value。它可以用来标记还没有标准值的变量,或者作为不返回任何内容的函数的“返回值”。在因此,使用它作为语句比使用新关键字
pass
更令人困惑。在相关问题 更多 >
编程相关推荐