Python 未定义函数的错误

Python 未定义函数的错误,python,Python,我收到了意外的错误消息,我不知道我的代码出了什么问题。下面是我的代码 在ClassA类中,定义了两个函数。 functionA已定义,用于将结果写入csv文件。 functionA稍后将在functionB中用作分析过程的一部分 然而,python返回了我 name错误:未定义名称“function” 有人知道为什么吗 class ClassA: def functionA(readDir, keyword, lst1, lst2): filename = os.pat

我收到了意外的错误消息,我不知道我的代码出了什么问题。下面是我的代码

在ClassA类中,定义了两个函数。 functionA已定义,用于将结果写入csv文件。 functionA稍后将在functionB中用作分析过程的一部分

然而,python返回了我 name错误:未定义名称“function” 有人知道为什么吗

class ClassA:
    def functionA(readDir, keyword, lst1, lst2):

        filename = os.path.join(readDir, keyword)
        filename = filename+'.csv'

        with open(filename, 'w', encoding='utf-8') as f:
            writer=csv.writer(f)
            header=['A', 'B']
            header2=['C','D']
            writer.writerow(header)
            writer.writerows(fdist1)
            writer.writerow(header2)
            writer.writerows(fdist2)


    def functionB(self, readDir, keyword):
        lst=[]
        function1()
        function2()
        function3()
        function4() 

        fdist1, fdist2=function5() 

        functionA(readDir, keyword, fdist1, fdist2)

        return fdist1, fdist2

您可以使用以下命令

self.functionA(readDir, keyword, fdist1, fdist2)
并用第一个参数
self
这样声明
function

def functionA(self, readDir, keyword, lst1, lst2):
#            ^^^^^^^

由于
函数是类
ClassA
的一部分,因此必须通过当前实例引用它,如下所示:

self.functionA(...)
self.functionA(readDir, keyword, fdist1, fdist2)
在您的情况下,呼叫将如下所示:

self.functionA(...)
self.functionA(readDir, keyword, fdist1, fdist2)

通过静态方法

演示:

输出:

$ python csv_task.py 
in B
in A
$ python csv_task.py 
in B
in A

按实例方法

类中最常用的方法是实例方法,即实例作为第一个参数传递给方法

演示:

输出:

$ python csv_task.py 
in B
in A
$ python csv_task.py 
in B
in A

你的意思是自我功能吗?此外,如果
function
没有
self
参数,则应将其标记为
@staticmethod
function
是类
ClassA
的实例方法。您必须指定要应用它的对象,例如
self.function()
。OMG ahahahahahahahahah谢谢。我的思想在仙女座的某个地方,我的眼睛不工作!谢谢我真不敢相信我忘了在函数前面添加self。我添加了我所有的代码,但我不只是在函数前面写self。谢谢你的帮助comment@ArnoldChung:欢迎,请看静态方法,这可能对您将来有用。