首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在模块和/或包中组织Python类

在模块和/或包中组织Python类
EN

Stack Overflow用户
提问于 2010-10-02 03:58:32
回答 2查看 33.9K关注 0票数 58

我喜欢每个文件有一个公共类的Java约定,即使有时有很好的理由将多个公共类放到一个文件中。在我的例子中,我有相同接口的替代实现。但是,如果我将它们放在单独的文件中,我会在import语句中使用冗余的名称(或误导性的模块名称):

代码语言:javascript
复制
import someConverter.SomeConverter

someConverter是文件名(和模块名),SomeConverter是类名。在我看来这很不雅观。将所有替代类放入一个文件中会产生一个更有意义的import语句:

代码语言:javascript
复制
import converters.SomeConverter

但我担心,如果我将所有相关的类放入一个模块文件中,这些文件会变得非常大。Python的最佳实践是什么?每个文件只有一个类是不寻常的吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-02 04:07:08

其中很大一部分是个人喜好。使用python模块,您可以选择将每个类保存在单独的文件中,同时仍然允许使用import converters.SomeConverter (或from converters import SomeConverter)

您的文件结构可能如下所示:

代码语言:javascript
复制
* converters
     - __init__.py
     - baseconverter.py
     - someconverter.py
     - otherconverter.py

然后在您的__init__.py文件中:

代码语言:javascript
复制
from baseconverter import BaseConverter
from otherconverter import OtherConverter
票数 60
EN

Stack Overflow用户

发布于 2012-11-07 04:25:57

Zach的解决方案在Python 3上中断了。这里是一个固定的解决方案。

其中很大一部分是个人喜好。使用python模块,您可以选择将每个类保存在单独的文件中,同时仍然允许使用import converters.SomeConverter (或from converters import SomeConverter)

您的文件结构可能如下所示:

代码语言:javascript
复制
* converters
     - __init__.py
     - baseconverter.py
     - someconverter.py
     - otherconverter.py

然后在您的__init__.py文件中:

代码语言:javascript
复制
from converters.baseconverter import BaseConverter
from converters.otherconverter import OtherConverter
票数 48
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3842616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档