这比编码问题更像是一个最佳实践问题。我已经写了一个项目,在项目中我有一些“帮助功能”。我将它们放在单独的类中,每个函数都是一个 @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")
答案 0 :(得分:2)
您的同事是对的。有一个带有一堆静态方法的类是没有意义的。认为您总是需要一个类是从Java或C#继承下来的坏习惯,在Java或C#中,一切都需要一个类。在Python中不是惯用语言。
Python就像C ++。独立方法不仅是允许的,而且通常是首选方法。使用模块将相关方法分组在一起,而不是名义上的类。
此外,您不需要单独的目录。
myproject/
└── src/
├── main.py
└── utils.py