这些是等价的吗?
class Empty : pass
和
class Empty:
'''
This class intentionally left blank
'''
第二个似乎更易读,可以将 pass
放在最后,但似乎没有必要。
评论是否被视为通过
?
最佳答案
您的两个代码几乎 等同,但不完全等同。 pass
只是一个空操作。 docstring 几乎也是一个空操作,但它向您的类对象添加了一个 __doc__
属性,因此存在细微差别。
在功能上等同于使用 pass
的版本是使用 Ellipsis
又名 ...
:
class Empty: ...
在这种情况下,...
没有什么特别之处。您未分配的任何预先存在的对象都可以正常工作。例如,您可以将 ...
替换为 None
、1
、True
等。选择 ...
是一种流行的替代方法,因为它更美观。按照惯例,它表示要填充的 stub ,而 pass
通常表示故意不执行任何操作。
像那样使用 ...
将在 Python 2 中引发 SyntaxError
。您可以改用命名的 Ellipsis
对象,但那是几乎没有那么漂亮。
您还可以找到 this question关于 pass
和 return None
在有趣的函数中的等价性。
关于python - 带有评论的空类与通过相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49754137/