小编sam*_*ise的帖子

何时使用 Python Ellipsis 优于“pass”?

当我找到abc模块(https://docs.python.org/3/library/abc.html)时,我只是在寻找在 Python 中定义抽象基类的方法。

经过一番阅读,我看到了以下课程:

class C(ABC):
    @abstractmethod
    def my_abstract_method(self, ...):
        ...
    @classmethod
    @abstractmethod
    def my_abstract_classmethod(cls, ...):
        ...
Run Code Online (Sandbox Code Playgroud)

想知道三个点,我发现它被称为Ellipsis( https://docs.python.org/3/library/constants.html#Ellipsis )。到目前为止,我只在结合类型提示的情况下看到并使用过它,在这种情况下它非常有意义。

但是为什么要在抽象方法的定义中使用省略号呢?就个人而言,我要么做

def my_abstract_method(self):
    raise RuntimeError("NotImplemented")
Run Code Online (Sandbox Code Playgroud)

或者

def my_abstract_method(self):
    pass
Run Code Online (Sandbox Code Playgroud)

那么为什么pass官方文档中更喜欢省略号呢?它只是自以为是吗?

python

18
推荐指数
4
解决办法
4537
查看次数

标签 统计

python ×1