首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >建议一个文件中有多个类吗?

建议一个文件中有多个类吗?
EN

Stack Overflow用户
提问于 2009-07-07 11:14:33
回答 6查看 77.1K关注 0票数 64

可能重复: 我应该在一个文件中放多少个Python类?

来自C++背景的我已经习惯于组织我的类,在大多数情况下,类和文件之间的比例是1:1。通过使其使单个文件包含单个类,我发现代码更适合导航。当我自我介绍Python时,我发现了许多示例,其中一个文件包含多个类。这是用Python进行操作的推荐方法吗?如果是,为什么?

我是不是错过了PEP8的这个惯例?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-07-07 11:28:15

以下是一些可能的原因:

  1. Python不仅仅是基于类的-- Python中代码分解的自然单元是模块。模块与类一样可能包含函数(在Python中是一流对象)。在Java中,分解的单位是类。因此,Python有一个module=one文件,Java有一个(公共) class=one文件。
  2. Python比Java更具表现力,如果您将自己限制为每个文件一个类(而Python并不阻止您这样做),那么最终您将得到很多非常小的文件--更多的是跟踪这些文件,却没有什么好处。

一个大致相同功能的例子:Java的log4j =>几十个文件,~8000 SLOC。=> 3文件,~2800SLOC。

票数 71
EN

Stack Overflow用户

发布于 2009-07-07 11:19:41

有一句格言:“平面比嵌套好”,这通常会阻止过度使用层次结构。我不确定在何时创建一个新模块时是否有严格的规则--在大多数情况下,人们只是使用他们的酌处权对逻辑相关的功能(与特定问题域相关的类和函数)进行分组。

Good 来自Python邮件列表的线程,还有Fredrik Lundh的一句话:

更重要的是,在Python中,并不是每件事都使用类;如果需要工厂、单例、创建对象的多种方法、多态帮助等等,则使用普通函数,而不是类或静态方法。 一旦克服了“这是所有类”,就使用模块来以一种对使用您的组件的代码有意义的方式来组织事情。 使导入语句看起来很好。

票数 21
EN

Stack Overflow用户

发布于 2009-07-07 11:32:33

专家Python编程”一书有一些相关的讨论

第4章:选择好名字:“构建名称空间树”和“拆分代码”

我的路线粗略总结:收集一些相关的类到一个模块(源文件),并收集一些相关模块到一个包,有助于代码的维护。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1091756

复制
相关文章

相似问题

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