组织效用函数
Organising utility functions
与其说是编码问题,不如说这是最佳实践问题。我写了一个项目,在项目中我有一些"helper functions"。我把它们放在一个单独的 class 中,每个函数都是 @staticmethod
我的同事认为我不应该将其作为 class 和 @staticmethod
而应该将它们作为一个模块。将模型导入我的代码,并直接使用函数而不是实例化 class。
我不确定,所以决定就 SO 提问。
myproject/
├── actual_code/
│ └── main.py
└── utils/
└── helper_funcs.py
问。 helper_funcs.py 应该是一个 class 还是一个带有函数的文件?
目前:
class HelperFuncs():
@staticmethod
def first_util():
print("first")
同事提议,干脆:
def first_util():
print("First")
你的同事是对的。 class 和一堆静态方法毫无意义。认为你总是需要一个 class 是从 Java 或 C# 中遗留下来的坏习惯,在 C# 中一切都需要一个 class。这在 Python.
中不是惯用语
Python 就像 C++。独立的方法不仅是允许的,而且通常是首选的。使用模块将相关方法组合在一起,而不是名义上的 class.
此外,您不需要单独的目录。
myproject/
└── src/
├── main.py
└── utils.py
与其说是编码问题,不如说这是最佳实践问题。我写了一个项目,在项目中我有一些"helper functions"。我把它们放在一个单独的 class 中,每个函数都是 @staticmethod
我的同事认为我不应该将其作为 class 和 @staticmethod
而应该将它们作为一个模块。将模型导入我的代码,并直接使用函数而不是实例化 class。
我不确定,所以决定就 SO 提问。
myproject/
├── actual_code/
│ └── main.py
└── utils/
└── helper_funcs.py
问。 helper_funcs.py 应该是一个 class 还是一个带有函数的文件?
目前:
class HelperFuncs():
@staticmethod
def first_util():
print("first")
同事提议,干脆:
def first_util():
print("First")
你的同事是对的。 class 和一堆静态方法毫无意义。认为你总是需要一个 class 是从 Java 或 C# 中遗留下来的坏习惯,在 C# 中一切都需要一个 class。这在 Python.
中不是惯用语Python 就像 C++。独立的方法不仅是允许的,而且通常是首选的。使用模块将相关方法组合在一起,而不是名义上的 class.
此外,您不需要单独的目录。
myproject/
└── src/
├── main.py
└── utils.py