相似模块之间的类命名约定?

2024-06-09 13:32:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个包含三个模块的包(见下面的模块样板):

|____mypackage
| |______init__.py
| |____serial.py
| |____modbus.py
| |____base.py

base有一个抽象类BaseClient,它提供了更高级的应用程序逻辑,用户通过它与底层客户机实现交互

serialmodbus都有一个类提供高级网络逻辑,我现在称之为BaseSerialBaseModbus。这些模块还有几个类,它们是BaseClient的具体实现,并且也从各自的BaseSerial/BaseModbus类继承

我的问题是:BaseSerial/BaseModbus类这样的类有什么标准/首选的命名约定吗?(对我来说,给它们取相同的名称,例如BaseNetworking,会更干净、更直观,但我也能看出这会导致问题)

或者,可能更相关的问题是:

  • 这种包装结构是好的做法吗
  • 这些类是否应该都在同一个模块中,从而导致我的问题不适用
  • 将抽象类从不同类型的具体实现中分离成不同的模块有什么好处吗?或者这是一种过于分散的设计吗

我通读了PEP-8 Naming Conventions,找不到任何与命名有名称空间的类和/或如何解释不同名称空间中类似类的名称有关的内容。此外,我找不到关于如何最好地从具体实现中分离(或不分离)抽象的评论

下面是我正在描述的包的样板实现:

base样板文件:

class BaseClient:
    def doAppLogic(self):
        ....

    def read(self):
        raise NotImplementedError

    def connect(self):
        raise NotImplementedError

serial样板文件:

import base

class BaseSerial:
    def connect(self):
        ...

class SerialSubclass1(BaseSerial, base.BaseClient):
    def read(self):
        if self.connect():
            ...

modbus样板文件:

import base

class BaseModbus:
    def connect(self):
        ...

class MobusSubclass1(BaseModbus, base.BaseClient):
    def read(self):
        if self.connect():
            ...

目前,我所做的工作很好。但是,我一直在花时间重构我的项目,以尽可能符合政治公众人物的指导方针,我遇到了这个元设计问题的障碍。我想未来证明这个项目以及我可以


Tags: 模块文件pyself名称basedefconnect