Python3:如何从类中的函数获取其他文件的值?

时间:2012-06-19 16:16:16

标签: python class function

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

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

我很清楚,我不理解关于类和函数的基本知识。你清楚我在这里失踪了吗?

2 个答案:

答案 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())