50得票3回答
Python抽象基类可以强制函数签名吗?

假设我像这样定义一个抽象基类: from abc import abstractmethod, ABCMeta class Quacker(object): __metaclass__ = ABCMeta @abstractmethod def quack(self): ...

24得票6回答
在Delphi中,抽象类与接口 - 分离定义和实现

使用接口还是抽象类更好的方法来分离定义和实现? 我个人不喜欢将引用计数对象与其他对象混合在一起。我想象在维护大型项目时,这可能会成为噩梦。 但是有时我需要从两个或多个类/接口派生一个类。 你有什么经验吗?

21得票1回答
使用抽象基类与普通继承的区别

我正在尝试理解使用抽象基类的好处。考虑以下这两个代码片段: 抽象基类:from abc import ABCMeta, abstractmethod, abstractproperty class CanFly: __metaclass__ = ABCMeta @abst...

17得票3回答
isinstance与字典和集合模块中的abc.Mapping一起使用是做什么?

我正在运行的代码是:>>> from collections import abc >>> mydict = {'test_key': 'test_value'} >>> isinstance(mydict, abc.Mapping) Tr...

17得票1回答
从抽象类派生的类在初始化时出现Python错误

我有这段简单的代码,但是我收到了一个奇怪的错误:from abc import ABCMeta, abstractmethod class CVIterator(ABCMeta): def __init__(self): self.n = None # the v...

16得票3回答
如何使抽象数据类通过mypy?

mypy v0.910在Python 3.9中拒绝抽象数据类。这是一个最小可重现的示例:from abc import ABC, abstractmethod from dataclasses import dataclass @dataclass class Liquid(ABC): ...

12得票8回答
抽象基类与具体类作为超类型的区别

在读完最好的书籍“Head First Design Patterns”后,我开始向我的同事倡导模式和设计原则的好处。在赞扬我最喜欢的模式-策略模式时,有一个问题让我停下了来。当我在抨击“按照接口编程而非实现编程”的时候,我的一位同事问道:“为什么使用抽象基类而不是具体类?” 我只能想到“你可...

12得票3回答
通知子类实现一个方法应使用哪个异常?

假设我想在Python中创建一个抽象类,其中包含一些由子类实现的方法,例如:class Base(): def f(self): print "Hello." self.g() print "Bye!" class A(Base): ...

12得票1回答
基于抽象基类捕获异常

假设我有一个带有抽象基类的异常类,就像这样:class MyExceptions(BaseExeption, metaclass=abc.ABCMeta): pass class ProperSubclass(MyExceptions): pass MyExceptions...

11得票3回答
通过抽象基类调用未知派生类的复制构造函数的C++实现方法

我正在制作一个树,其中有几种不同的节点类型:二叉节点、一元节点和终端节点。我有一个所有节点都从中继承的ABC。我正在尝试编写一个递归的复制构造函数以实现树结构的复制:class gpnode { public: gpnode() {}; virtual ~gpnode() {}; ...