在python中,如何确定函数应该处于哪个级别?

在python中,如何确定函数应该处于哪个级别?,python,Python,我有一个名为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()作为文件级函数应该在类内部还是类外部时,应该问什么问题 另

我有一个名为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\u
?如果不是,它应该隐藏在
文件解析器中。如果有其他人使用它,你有一个更大的问题。如果<代码> OtherClass 使用<代码>函数> NoSytEng/<代码>非常频繁(与<代码>文件解析器< /代码>相一致),那么将“<代码>函数”与“NONI状态< /代码>”保持在一起是一个好主意,以便两个类都能使用它。但是如果到目前为止,
FileParser
是主要用户,那么
OtherClass
就可以从
FileParser
的定义中提取该函数。

您对
func\u with\u no\u state
的意思是什么,它做什么?你想达到什么目的?do_something()和func_with_no_state()是非常通用的名称。他们是做什么的?这更多的是一个面向对象或设计问题。它与Python没有特别的关系。一个非常粗略的答案是,如果您的函数与类相关,并且/或者使用跨类方法共享的变量,那么就使用一个类。如果您的函数独立工作且不使用类变量,则将其保留在外部。@AmitTripathi一个警告是,您可能需要一个没有绑定状态的函数,但仍然需要继承。虽然,我很少发现这是必要的。通常,我在一个模块中混合了类定义和独立函数。是的,对于与类无关但出于可读性、继承性等原因仍然需要在类中的方法,我们可以使用@staticmethod语法:)