【发布时间】:2017-03-13 15:47:10
【问题描述】:
我有一个所有方法都是静态的 python 类,
class SomeClass:
@staticmethod
def somemethod(...):
pass
@staticmethod
def somemethod2(...):
pass
@staticmethod
def somemethod3(...):
pass
这样做是否正确?
【问题讨论】:
-
当然你可以将它重构为函数。但这并不重要。
-
这应该尖叫“我应该只是一个模块”
-
静态方法在 Python 中不是很常见,而且只有静态方法的 Python 类对我来说似乎很奇怪——Python 不是 Java,在 Python 中盲目地复制 Java 模式往往会产生丑陋,臃肿的代码。为什么不把它们变成在模块级别定义的普通函数呢?您可以将它们放入自己的模块中以将它们组合在一起。
-
@PM2Ring 它可能会增加模块的数量,每个模块只有两个或三个功能
-
@GrizzledSquirrel 你有两种可能的结果。要么你接受这应该是一个真正的模块——或者至少,不是一个类,或者我们会把它关闭为“主要基于意见”——“许多好的问题会根据专家的经验产生一定程度的意见,但答案是这个问题往往几乎完全基于意见,而不是事实、参考资料或特定专业知识。”
标签: python python-3.x