我将抽象类添加到我的 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/