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

时间:2015-07-04 14:02:41

标签: python code-structure

我是一名高级程序员,最近开始使用和学习python。我最近遇到了this问题。该问题的答案表明,不是在类中使用静态方法,而是仅仅使用方法而不使用类,这被认为是更好的设计。

代码设计1:

gameResolution.py

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

screenResolution.py

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

代码设计2:

resolution.py

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

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

正如您可能看到的,代码设计2 在这种情况下更有意义(在我看来)。我可以在一个类中包含与该实体相关的任何内容(例如GameResolution或ScreenResolution)以及resolve.py文件中的所有这些类。

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

那么,静态方法对python来说是不是很糟糕?在这种情况下,你会做什么?

1 个答案:

答案 0 :(得分:2)

最好的解决方案取决于你的风格。话虽如此,我认为将类作为单一用途静态的类是不可能的。我会做以下其中一项:

  1. 创建一个处理所有分辨率内容的类(GameResolution / ScreenResolution / etc),并为每个分别创建单独的实例。
  2. widthheight的名称更改为game_widthgame_heightscreen_widthscreen_height
  3. 至于当我使用静态方法时,由于某种原因,唯一的时间是以不同于初始化程序的方式创建对象。但这样做的必要性相当罕见。听起来你的用例更适合用于表示所有内容的一个类,或者它们是否足够不同于全局和函数而不是类和静态方法。