1

クラスの使い方を理解しようとしています。コードが長くなり、煩雑になりました。クラスを使用すると、いくつかのクリーンアップに役立つことを願っています

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)

dir(test_header) を実行すると、リストに自分のfiling_type関数が表示されます。しかし、私が走るとき

 test_header.filing_type()

TypeError が発生します

 TypeError: 'Header' object is not subscriptable
4

1 に答える 1

3

を使用する必要がありますtree = html.fromstring(self.header)。そして、最初のタグの内容のみを返すため、 returninfilling_typeが間違っているようです(おそらくこれが必要なだけです)。おそらく、リストを使用してすべての型タグを保存するか、yield を使用できます。

于 2013-08-03T23:10:47.983 に答える