如何在类中正确创建方法

时间:2013-08-03 23:07:00

标签: python class instance

我试图强迫自己理解如何使用类。我的代码变得更长,更乱。我希望使用类可以帮助我清理一些

from lxml import html

Class Header(object):
    def __init__(self,file_reference)
        self.header =  open(file_reference).read()

    def filing_type(self):
        tree = html.fromstring(self)
        for element in tree.iter():
            if element.tag == 'type':
                return element.text.strip()

所以我有一个特定文件的引用

 myref = 'correct_file_path'
 test_header = Header(myref)

当我做一个目录(test_header)时,我在列表中看到了我的filing_type函数。但是当我跑步时

 test_header.filing_type()

我得到一个TypeError

 TypeError: 'Header' object is not subscriptable

1 个答案:

答案 0 :(得分:3)

您应该使用tree = html.fromstring(self.header)。而且return中的filling_type似乎是错误的,因为它只返回第一个标记的内容(也许你只是想要这个)。也许您可以使用列表来存储所有类型标签或使用yield。