这更像是一个最佳实践问题,而不是一个编码问题。我写了一个项目,在项目中我有一些"助手功能"。我把它们放在一个单独的类中,每个函数都是@staticmethod
我的同事认为我不应该把它作为一个类和@staticmethod
,而应该把它们作为一个模块。将模型导入到我的代码中,并直接使用函数,而不是实例化类。
我不确定,所以决定问一个关于so.的问题
myproject/
├── actual_code/
│ └── main.py
└── utils/
└── helper_funcs.py
Q。helper_funcs.py应该是一个类还是仅仅是一个包含funcs的文件?
目前:
class HelperFuncs():
@staticmethod
def first_util():
print("first")
同事提议,简单地说:
def first_util():
print("First")
你的同事是对的。拥有一个包含一堆静态方法的类是没有意义的。认为你总是需要一个类是Java或C#遗留下来的一个坏习惯,在Java或C#中,所有东西都需要一个类别。它在Python中不地道。
Python类似于C++。独立方法不仅是允许的,而且通常是首选的。使用模块将相关方法分组在一起,而不是使用名义类。
此外,您不需要单独的目录。
myproject/
└── src/
├── main.py
└── utils.py