python - 我应该将抽象类放在 python 包中的什么位置?

标签 python abstract-class conventions

我将抽象类添加到我的 python 包中,如下所示:

class AbstractClass(ABC):

    @abstractmethod
    def do_something(self):
        pass
将会有多个子类继承自 AbstractClass像这样:
class SubClass(AbstractClass):

    def do_something(self):
        pass
我想知道 python 包是否有关于我不知道的抽象类的任何约定。
  • 抽象类应该与子类分开,还是应该都在同一个目录中?
  • 抽象函数的命名怎么样,那里有什么约定?

  • 我意识到这是相当主观的。我在征求意见,而不是“对”或“错”
    谢谢!

    最佳答案

    没有想到任何约定。如果这只是一个项目的全部内容,我希望将抽象类与具体子类放在它们所处的任何级别。如果所有子类都在一个文件中,那么我也会将抽象类放在该文件中。如果所有子类都在目录中的单个文件中,我会将抽象类放在它们自己的文件中。我将抽象类放在其他地方的原因是,如果我正在分离可以与其他项目重用的实用程序代码。简而言之,抽象类只是一段代码。又是一个类。像对待任何其他人一样对待它。
    就命名而言,给定类的自然命名通常就足够了。如果您的抽象类是 Animal,而您的子类是 Goat、Horse 等,我认为没有理由将您的抽象类称为 AbstractAnimal,因为已经很清楚发生了什么……您不会直接实例化 Animal .此外,如果您正在查看一个考虑重用它的类,并且您在其中看到一个抽象方法,那么您就知道它是抽象的。

    关于python - 我应该将抽象类放在 python 包中的什么位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63925623/

    相关文章:

    java - 解决JAVA父接口(interface)中缺少构造函数

    python-3.x - Python静态方法定义放置

    python - 具有不同 "speed"的pygame元素

    python - Seaborn,更改颜色栏的字体大小

    python - 在 Python : changing value vs removing value inconsistency 中重新加载模块

    java - 从抽象类的所有子类调用方法的最佳方法是什么?

    python - 从套接字导入模块错误python

    python - 禁止向 Python 子类添加新方法

    java - 将扩展的 ASCII 字符串转换为印地文文本

    Python源文件组织