在 Python 中使用静态方法的频率

How often to use static methods in Python

我是一名高级程序员,最近开始使用和学习python。我最近 运行 进入 this 问题。该问题的答案表明,与其在 class 中使用静态方法,不如只使用方法而不使用 class 被认为是更好的设计。

代码设计1:

gameResolution.py

width = 300
height = 300
# other variables, and functions following...

screenResolution.py

width = 1920
height = 1080
# other variables and functions following...

代码设计二:

resolution.py

class GameResolution:
    width = 300
    height = 300
    # static functions following

class ScreenResolution:
    width = 1920
    height = 1080
    # static functions following

您可能会看到,代码设计 2 在这种情况下(在我看来)更有意义。我可以将与该实体相关的任何内容(例如 GameResolution 或 ScreenResolution)打包到 class 中,并将所有那些 classes 打包到 resolution.py 文件中。

如果我遵循 代码设计 1,我最终会得到许多小的 .py 文件,每个文件代表一个非常小的 class。正确吗?

那么,对于 python 来说,静态方法真的是一种糟糕的方法吗?在这种情况下,你会怎么做?

最佳解决方案有点取决于您的风格。话虽这么说,但我不认为将 classes 作为单一用途静态化是可行的方法。我会执行以下操作之一:

  1. 制作一个 class 来处理所有分辨率内容 (GameResolution/ScreenResolution/etc) 并为每个制作单独的实例。
  2. widthheight 的名称更改为 game_widthgame_heightscreen_widthscreen_height

至于当我使用静态方法时,唯一一次是出于某种原因以不同于初始化程序的方式创建对象。不过,这样做的需要相当少见。听起来你的用例更适合用一个 class 来表示所有内容,或者如果它们足够不同,那么全局变量和函数而不是 classes 和静态方法。