python中pass语句和3个点(...)之间的区别

Igo*_*lex 11 python

pass语句有什么区别:

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

和 3 个点:

def function():
   ...
Run Code Online (Sandbox Code Playgroud)

哪种方式执行起来更好更快(CPython)?

Fel*_*elk 16

pass已经使用该语言很长时间了,只是一个空操作。它旨在明确地什么都不做。

...是具有单例值的标记Ellipsis,类似于单例值如何None。将...作为您的方法主体具有与例如相同的效果:

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

...可以解释为:如果你覆盖它有道理从API设计的角度来看,例如标记值__getitem__做一些特别的东西,如果Ellipsis被通过,然后给予foo[...]特殊的意义。它并不是专门用来替代无操作存根的,尽管我已经看到它被这样使用并且它也没有伤害


Exe*_*ian 10

不完全是您问题的答案,但也许是有用的澄清。该pass语句应用于指示块不执行任何操作(无操作)。(省略号)运算...符实际上是一个可以在不同上下文中使用的文字。

省略号用法的一个示例是 NumPy 数组索引:a[..., 0]