有时,在查看Python代码示例时,我会遇到一个整个程序包含在自己的类中的程序,并且几乎程序的每个函数实际上都是该类的一个方法,除了'main'函数
因为这对我来说是一个相当新的概念,即使我以前见过它,我也不能轻易找到一个例子,所以我希望有人理解我的意思。
我知道如何在程序函数的其余部分之外使用类,但与自己的函数相比,以这种方式使用它们有什么好处?
此外,可以/应该使用类以这种方式构建一个没有函数调用的单独模块吗?
答案 0 :(得分:2)
当模块是纯函数的集合时,首选模块,即没有像模块级变量那样的共享状态。当有多个函数在共享状态下运行时,通常会使用大的类。
在Python脚本中,您经常会看到main函数的模式只是类的实例化并调用例如youtube-dl的方法。这是出于各种原因:
一般而言,课程提供的功能更多,但复杂性稍微增加。在一次性脚本的情况下,有些人更喜欢简单的函数esp。权衡取决于开发人员,两者都是Python中的有效选项。
答案 1 :(得分:1)
程序通常必须维护状态并在功能之间共享资源(命令行选项,dB连接等)。在这种情况下,类通常是一个更好的解决方案(wrt /可读性,可测试性和整体可维护性),而不是必须将整个上下文传递给每个函数或(更糟)使用全局状态。