【发布时间】:2015-07-04 14:02:40
【问题描述】:
我是一名高级程序员,最近开始使用和学习 python。我最近遇到了this 的问题。该问题的答案表明,与其在类中使用静态方法,不如只使用方法而不使用类被认为是更好的设计。
代码设计一:
gameResolution.py
width = 300
height = 300
# other variables, and functions following...
screenResolution.py
width = 1920
height = 1080
# other variables and functions following...
代码设计2:
分辨率.py
class GameResolution:
width = 300
height = 300
# static functions following
class ScreenResolution:
width = 1920
height = 1080
# static functions following
您可能会看到,代码设计 2 在这种情况下(在我看来)更有意义。我可以将与该实体相关的任何内容(例如 GameResolution 或 ScreenResolution)打包到一个类中,并将所有这些类打包到一个 resolution.py 文件中。
如果我遵循 代码设计 1,我最终会得到许多微小的 .py 文件,每个文件都代表一个非常小的类。对吗?
那么,静态方法对 python 来说真的是一种不好的方法吗?在这种情况下,你会怎么做?
【问题讨论】:
-
最好将
width和height设为对象属性,并将方法设为非静态。然后你可以创建多个GameResolutions等。 -
@bereal 正如我对
# other variables, and functions following...所暗示的那样,可能有更多不匹配的变量,因此创建Resolution类实际上是不可能的。但是,由于它们确实具有一些共同的功能,因此在我看来,将它们保存在一个公共文件resolution.py中是有意义的,而不是制作一个很小的 .py文件 -
如果你以 OO 方式设计整个东西,我看不出有其他变量和函数是如何无法匹配的。
-
如果你的课程真的是一次性的,并且你不知道如何将这个类概括为可用的更多,那么使用一个类就不是pythonic。你当然可以随心所欲,我不确定它是否会对性能造成任何影响,或者你会遇到任何特殊问题,但其他 python 程序员会特别喜欢这段代码。
标签: python code-structure