我想创建一个类来存储我的脚本必须处理的许多数据文件的属性。属性是在数据文件中找到的值,或者是从数据文件中找到的其他值计算的值。
不幸的是,我不理解为实现这一目标而编写的代码输出。我认为这应该是:打印正在处理的文件的名称和该文件中的值seqlength
。实际输出在代码下面给出。
class SrcFile:
def __init__(self, which):
self.name = which
def seqlength(self):
with open(self.name) as file:
linecounter = 0
for line in file:
linecounter += 1
if linecounter == 3:
self.seqlength = int(line.split()[0])
break
for f in files:
file = SrcFile(f)
print(file.name, file.seqlength)
这会按预期打印file.name
,但对于file.seqlength
,它会返回一个我不理解的值。
../Testdata/12_indels.ss <bound method SrcFile.seqlength of <__main__.SrcFile object at 0x10066cad0>>
我很清楚,我不理解关于类和函数的基本知识。你清楚我在这里失踪了吗?
答案 0 :(得分:2)
.seqlength
是一种方法,需要()
,但您也没有从中返回任何内容。试试这个:
def seqlength(self):
with open(self.name) as file:
linecounter = 0
for line in file:
linecounter += 1
if linecounter == 3:
return int(line.split()[0])
然后称之为:
for f in files:
file = SrcFile(f)
print(file.name, file.seqlength())
答案 1 :(得分:0)
多数民众赞成因为.seqlength
是一种方法。
尝试
print(filename, file.seqlength())