Python 是否建议在一个文件中包含多个类?
可能重复:Python 是否建议在一个文件中包含多个类?,python,class,Python,Class,可能重复: P>来自C++背景,我习惯于组织我的类,这样,在大多数情况下,类和文件之间的比例为1:1。通过使单个文件包含单个类,我发现代码更易于导航。在我介绍Python时,我发现了很多示例,其中一个文件包含多个类。这是Python中推荐的做事方式吗?若然,原因为何 在python中,类还可以用于小任务(仅用于分组等)。保持1:1的关系会导致文件太多,功能太小或太少。有一句格言,“扁平比嵌套好”,这通常会阻止过度使用层次结构。我不确定是否有任何硬性规定来确定何时创建新模块——在大多数情况下,
<> P>来自C++背景,我习惯于组织我的类,这样,在大多数情况下,类和文件之间的比例为1:1。通过使单个文件包含单个类,我发现代码更易于导航。在我介绍Python时,我发现了很多示例,其中一个文件包含多个类。这是Python中推荐的做事方式吗?若然,原因为何
在python中,类还可以用于小任务(仅用于分组等)。保持1:1的关系会导致文件太多,功能太小或太少。有一句格言,“扁平比嵌套好”,这通常会阻止过度使用层次结构。我不确定是否有任何硬性规定来确定何时创建新模块——在大多数情况下,人们只是根据自己的判断来对逻辑相关的功能(与特定问题域相关的类和函数)进行分组 很好,引用弗雷德里克·伦德的一句话: 更重要的是,在Python中, 并不是每一次都使用类- 事情如果你需要工厂, 单例,多种创建方法 对象、多态帮助程序等,您可以 使用普通函数,而不是类或 静态方法 一旦你克服了“一切都完了” “类”,使用模块进行组织 以一种对你有意义的方式 使用组件的代码。
使导入语句看起来很好
这方面没有特定的约定-尽一切可能使您的代码最具可读性和可维护性。以下是一些可能的原因:
第4章:选择好的名称:“构建名称空间树”和“拆分代码”
我的行摘要:收集一些相关的类到一个模块(源文件),然后
将一些相关模块收集到一个包中,有助于代码维护。django应用程序中的models.py文件可能是每个类没有单独文件的一个好例子。每个django应用程序可能都有一些与该应用程序相关的类,将它们放在单独的文件中只会做更多的工作
同样,将每个视图重新放在不同的文件中可能会适得其反。Duplicate:Love过度使用层次结构部分的解释。有时,当代码中过度使用层次结构时,理解代码是非常困难的。尤其是在没有很好的文档记录的情况下,即使是“hello world”代码也会让人头疼,我不同意。通过在一个文件中包含更多的类,您只需公开更多受循环依赖关系影响的类,而循环依赖关系甚至可能不会成为问题,因为它们位于不同的文件中。但只有在这种情况下,分组才会产生不一致的代码库。这取决于情况。如果您在models.py中讨论多个模型,那么无论如何都不应该在全局范围内导入其他模型文件(这在过去是循环依赖的一种可靠方式:IIRC django现在甚至不允许进行检查)。