我找不到答案,所以我决定发布这个问题:
我正在重写我的代码以使其面向对象,我遇到了一些困难:
class Validation():
def __init__(self, input=path_property, output=validation_output):
self.input = input
self.outpu = output
self.groupList = []
def __str__(self):
return 'Input: %s\nOutput: %s\nGroup List: %s' % (self.input, self.outpu, self.groupList)
def csvExtract(self, d, groupList, n):
with open(self.input, 'r') as csv_input:
reader = csv.reader(csv_input, delimiter=',')
for d in reader:
self.groupList.append(d[n])
self.groupList.pop(0)
if __name__ == '__main__':
validate = Validation()
validate.csvExtract('col', groupList, 3)
print(groupList)
print(validate)
此代码只读取.csv文件,并将第三列的元素添加到列表中。当它没有被放入类中时,这很好用,并且在代码的开头定义了一个列表。
现在我明白了:
Traceback (most recent call last):
File "C:/path/validation.py", line 34, in <module>
validate.csvExtract('col', groupList, 3)
NameError: name 'groupList' is not defined
我还打算提出csvExtract()
(d
- 表示列,n
- 表示列数)的参数
__init__()
。
我尝试了几种不同的方法,你能帮我解决这个问题吗?