在Java中,有一个(恕我直言是错误的)想法,它在所有地方都使用类,甚至只是将不共享任何状态的静态函数组合在一起(因此,此类永远都不会被实例化)。@H_301_1@
这里的Python有所不同。如果您的函数没有某些共享状态1(因此在Java中通常是static
函数),并且与“真实”类(=实际上已实例化的)没有紧密关系,则只需在模块。@H_301_1@
其背后的原因是,仅当您实际要实例化它时才需要一个类,因此,将类作为多个不需要共享特定于实例的状态的函数的容器是没有用的。@H_301_1@
实际上,您可以在 某种程度上 将模块视为static
类-即,包含函数(=静态方法),模块变量(= static字段)和类型的容器。@H_301_1@
Python的优点在于,拥有顶层函数不会带来全局命名空间污染的问题,因为在Python中顶层函数/ objects / …仍然是模块作用域的。因此,您仍然可以按模块对功能进行分组,而无需不必要的class
-tax。@H_301_1@