2013-08-03 6 views
1

클래스를 사용하는 방법을 이해하도록 노력하고 있습니다. 내 코드가 길어지고 복잡해졌습니다. 나는 클래스를 사용하는 것은 제가이 디렉토리 (test_header) 나는 내 filing_type 기능을 참조 할 때 일부클래스에서 메서드를 올바르게 만드는 방법

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

를 실행할 때 tree = html.fromstring(self.header)을 사용해야하지만 나는 형식 오류를

TypeError: 'Header' object is not subscriptable 
+0

'tree = html.fromstring (self.header)'하지 않아야합니까? – Blender

+0

@Blender 덕분에 그 변형을 시도하지는 않았지만 zhangyangyu는 대답을 주 었으므로 그에게 제공해야했습니다. – PyNEwbie

+0

또한 클래스가 하나의 변수 및 저장 방법을 저장하는 것 외에 다른 작업을 수행합니까? – Blender

답변

3

를 얻을. 그리고 filling_type에있는 return은 첫 번째 태그의 내용 만 반환하기 때문에 잘못되었습니다 (어쩌면 이걸 원할 수도 있습니다). 어쩌면 목록을 사용하여 모든 유형 태그를 저장하거나 출력량을 사용할 수 있습니다.

+0

감사합니다. 하나의 유형 태그 만 있습니다. 그래서 나는 그것에 능숙합니다. – PyNEwbie

관련 문제