python ABCMeta class的作用abstract

2020-04-02  本文已影响0人  数据小新手

ABCMeta class的作用

该类不能直接使用,需要继承之后并重写@abstractmethod之后才能使用

from abc import ABCMeta, abstractmethod

class A(metaclass=ABCMeta):
    @abstractmethod
    def foo(self): pass

A()  # raises TypeError

class B(A):
    pass

B()  # raises TypeError

class C(A):
    def foo(self): print(42)

C()  # works

Note: The @abstractmethod decorator should only be used inside a class body, and only for classes whose metaclass is (derived from) ABCMeta.

@abstractmethod只能在继承ABCMeta的类中使用

reference :

https://legacy.python.org/dev/peps/pep-3119/

上一篇 下一篇

猜你喜欢

热点阅读