【发布时间】:2017-11-27 18:59:57
【问题描述】:
我有一个名为 file_parsers.py 的文件,它包含以下类:
class FileParser():
def __init__(self, file_text):
self.file_text = file_text
def do_something(self):
my_value = func_with_no_state()
我不确定在决定 func_with_no_state() 作为文件级函数应该在类内还是类外时要问什么问题?
另外,当这个函数在文件级或类内部时,它更容易存根吗?
【问题讨论】:
-
func_with_no_state是什么意思,它有什么作用?你想达到什么目的? -
do_something() 和 func_with_no_state() 是非常通用的名称。他们是做什么的?
-
这更像是一个 OOP 或设计问题。它与 Python 没有特别的关系。一个非常粗略的答案是,如果您的函数与类相关和/或使用跨类方法共享的变量,则使用类。如果您的函数独立工作并且不使用类变量,则将其保留在外部。
-
@AmitTripathi 一个警告是,也许您可能想要一个没有绑定状态的函数,但您仍然想要继承。虽然,我很少发现这是必要的。通常,我在一个模块中混合了类定义和独立函数。
-
是的,对于与类无关但出于可读性、继承性等原因仍需要在类中的方法,我们可以使用@staticmethod语法糖:)
标签: python