Answers:
老实说,这取决于您的需求。大多数情况下,功能模块将是您所需要的。
不应将Python类(imho)视为C#或C ++或Java中的类,需要逻辑上的理由将一组函数分组为更大的父类,数据结构将是一个很好的例子,直接适用于该类的一组完全一致的函数,而不是一组通用的松散收集的函数。
一个模块用于类似系统的整体层次结构分组,我通常将所有实用程序功能放在一个模块下,所有数据都放在另一个模块下,我的数据层和连接器放在一个更“父”类型的模块下。由于模块只是一个思维上的分组,因此它所涉及的系统类型(类或功能,实际上可能是两者的混合)就更少了,而模块下系统之间的逻辑联系则更多。
基本问题是是否需要模块/类的不同实例。python模块就像一个单例 -您始终引用同一对象,即,如果需要实例,则需要一个类。
但是,如果不需要实例,则可能仍需要将“对象”设置为初始状态。尽管使用普通模块显然可以做到这一点,但是如果初始化不仅仅是设置一些值而复杂,我建议在类的__init__
方法中使用初始化代码以提高可读性。