只有类方法的类

Sij*_*esh 6 python design-patterns

我有一个只有类方法的类。它是一种 Pythonic 的命名空间方式吗?如果没有,将相似类型的方法分组的最佳方法是什么?

class OnlyClassMethods(object):
    @classmethod
    def method_1(cls):
        pass

    @classmethod
    def method_2(cls):
        pass
Run Code Online (Sandbox Code Playgroud)

Oli*_*çon 11

类旨在具有实例,而不是用作命名空间。如果您的类从未被实例化,则它不符合Python 的class.

如果要命名一组相关的方法,请创建一个新模块,即另一个.py文件,然后导入它。

例子

这里我们创建了一个名为的模块helpers,其中包含一些相关的方法。然后可以将此模块导入到我们的main文件中。

helpers.py

def method_1():
    ...

def method_2():
    ...
Run Code Online (Sandbox Code Playgroud)

主文件

import helpers

helpers.method_1()
helpers.method_2()
Run Code Online (Sandbox Code Playgroud)

  • 真的回答了我的问题。谢谢 (2认同)