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