【发布时间】:2019-02-12 21:13:14
【问题描述】:
我有一个只有类方法的类。它是一种 Pythonic 的命名空间方式吗?如果不是,那么对类似方法进行分组的最佳方式是什么?
class OnlyClassMethods(object):
@classmethod
def method_1(cls):
pass
@classmethod
def method_2(cls):
pass
【问题讨论】:
-
到目前为止,这个问题过于宽泛,因为缺少上下文。例如,如果这些方法之间没有共享状态,那么使用顶级函数来“命名空间”可能更有意义
-
这个问题不是很精确。为什么只使用 classmethods ?如果你想通过一个类来生成一个类,我鼓励你看看
meta classes:stackoverflow.com/questions/100003/… -
@DeepSpace 如果您只使用类方法,那么您所关心的就是修改实例方法或类属性。我有一个类似的问题,我需要根据不同的参数生成不同的类,而这样做的(不好的)方法是首先生成一个实例,然后使用类方法来替换一些行为。无论如何,我推断这是 OP 的用例,虽然我不确定,这就是为什么我以“问题不是很精确”开始我的评论。