我遇到了意外的错误消息,我不知道我的代码有什么问题。以下是我的代码。
在ClassA类中,定义了两个函数。 functionA已定义,用于在csv文件上写入结果。 functionA稍后将在functionB中用作分析过程的一部分。
然而,python返回我 NameError:name' functionA'未定义 有谁知道为什么?
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
答案 0 :(得分:0)
您可以使用以下
self.functionA(readDir, keyword, fdist1, fdist2)
并使用第一个参数functionA
声明self
def functionA(self, readDir, keyword, lst1, lst2):
# ^^^^^^^
答案 1 :(得分:0)
由于functionA
是类ClassA
的一部分,您必须通过当前实例引用它,如下所示:
self.functionA(...)
在你的情况下,电话会是这样的:
self.functionA(readDir, keyword, fdist1, fdist2)
答案 2 :(得分:0)
通过staticmethod
演示:
class ClassA:
@staticmethod
def functionA():
print "in A"
def functionB(self, ):
print "in B"
ClassA.functionA()
a = ClassA()
a.functionB()
输出:
$ python csv_task.py
in B
in A
按实例方法:
类中最常用的方法是实例方法,即实例作为方法的第一个参数传递。
演示:
class ClassA:
def functionA(self):
print "in A"
def functionB(self, ):
print "in B"
self.functionA()
a = ClassA()
a.functionB()
输出:
$ python csv_task.py
in B
in A