我喜欢Java惯例,即每个文件有一个公共(public)类,即使有时有充分的理由将多个公共(public)类放入一个文件中也是如此。就我而言,我有相同接口(interface)的替代实现。但是,如果我将它们放置在单独的文件中,则导入语句中会有多余的名称(或误导的模块名称):
import someConverter.SomeConverter
而
someConverter
是文件(和模块)名称,SomeConverter
是类名称。对我来说,这看起来很优雅。将所有替代类放入一个文件将导致更有意义的import语句:import converters.SomeConverter
但是,如果将所有相关类放入单个模块文件中,我担心文件会变得很大。这里的Python最佳做法是什么?每个文件一个类是否异常?
最佳答案
很多是个人喜好。使用python模块,您可以选择将每个类保存在单独的文件中,并且仍然允许import converters.SomeConverter
(或from converters import SomeConverter
)
您的文件结构可能如下所示:
* converters
- __init__.py
- baseconverter.py
- someconverter.py
- otherconverter.py
然后在
__init__.py
文件中:from baseconverter import BaseConverter
from otherconverter import OtherConverter