0

我想创建一个类来存储我的脚本必须处理的许多数据文件的属性。属性是在数据文件中找到的值,或者是根据在数据文件中找到的其他值计算得出的值。

不幸的是,我不了解我为实现该目标而编写的代码的输出。我认为这应该做的是:打印正在处理的文件的名称和该文件的值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>>

我很清楚,我不了解有关类和函数的基本知识。你清楚我在这里缺少什么吗?

4

2 回答 2

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())
于 2012-06-19T16:19:30.350 回答
0

那是因为.seqlength是一种方法。

尝试做

print(filename, file.seqlength())
于 2012-06-19T16:18:08.897 回答