组织实用程序功能

时间:2019-11-12 11:10:12

标签: python python-3.x directory-structure modularity code-organization

这比编码问题更像是一个最佳实践问题。我已经写了一个项目,在项目中我有一些“帮助功能”。我将它们放在单独的类中,每个函数都是一个 @staticmethod

我的同事认为我不应该将它作为一个类和 @staticmethod ,而应该将它们作为一个模块。将模型导入我的代码,然后直接使用函数而不是实例化类。

我不确定,所以决定问一个问题。

myproject/
├── actual_code/
│   └── main.py
└── utils/
    └── helper_funcs.py
问:应该将helper_funcs.py作为类还是仅包含funcs的文件?

当前:

class HelperFuncs():

    @staticmethod
    def first_util():
        print("first")

同事提议,简单地:

def first_util():
    print("First")

1 个答案:

答案 0 :(得分:2)

您的同事是对的。有一个带有一堆静态方法的类是没有意义的。认为您总是需要一个类是从Java或C#继承下来的坏习惯,在Java或C#中,一切都需要一个类。在Python中不是惯用语言。

Python就像C ++。独立方法不仅是允许的,而且通常是首选方法。使用模块将相关方法分组在一起,而不是名义上的类。

此外,您不需要单独的目录。

myproject/
└── src/
    ├── main.py
    └── utils.py