如何解决抽象类元类=ABCMeta和抽象类ABC之间的区别
我见过两种在 python
中定义抽象类的方法。有什么区别,各自的使用场景是什么?
from abc import ABCMeta,abstractmethod
class AbstactClass(Metaclass = ABCMeta):
和
from abc import ABC,abstractmethod
class AbstractClass2(ABC):
解决方法
没有实际的功能差异。 ABC
类只是一个方便的类,可帮助那些不太了解元类概念的人使代码看起来不那么混乱,如 documentation 所述:
以 ABCMeta 作为元类的辅助类。有了这个班级, 可以通过简单地从 ABC 派生来创建抽象基类 避免有时混淆元类的用法
看一下abc.py的实现就更清楚了,它只不过是一个空类,指定了ABCMeta
作为它的元类,这样它的后代就可以继承该类型:
class ABC(metaclass=ABCMeta):
"""Helper class that provides a standard way to create an ABC using
inheritance.
"""
__slots__ = ()
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。