在我的代码中,上述两个选项中的任何一个都可以很好地工作,但我有兴趣找出这两种方法的优缺点。
2 回答
如果函数是完全无状态的,那么带有函数的模块就可以正常工作并且更简单。
另一方面,如果涉及到状态,通常最好将该状态封装在一个类中,并通过成员函数提供功能。
首先,python 中的每件事都是一个对象,因此,在使用函数而不是类的性能方面没有太大的差异,反之亦然。
如果您是初学者,那么我建议您使用带有函数的模块,因为它更容易、更直接。
这种技术的缺点是你可能在同一个模块中有很多功能,这使得在精神上更难跟踪和记住哪些模块中有哪些功能
如果您对使用类感到满意,它将提供封装的力量(数据/属性+方法/逻辑),并将所有逻辑相关的东西放在一个容器中,即类,那么您可以从这里开始。
您可以自定义您希望您的类如何在代码中进行交互,方法是添加:元类、描述符和所有 python 特殊函数,它们可以覆盖类中每个部分的默认行为。
使用类,将帮助您更好地从逻辑上表示现实世界的问题,例如,您可以说我有一个机器类,用数据/属性描述它的所有属性/规范,并定义它的行为方式、接受输入并使用方法产生输出. 当你编写一个新的协议或标准时,同样的事情也会发生,用可以用逻辑实体/容器描述每一个的类来表示它的组件/输入/输出/行为会更容易。
此外,类更适合团队合作,你不会自己写所有东西,你的项目必须有一个蓝图,这个蓝图应该被翻译成更小的块、输入和输出;在这种情况下最好使用类。