Python을 배우기위한 일환으로 기사 텍스트를 반환하는 MediaWiki API에 대한 래퍼를 작성하고 있습니다. 여기 자체 내에서 함수 호출하기
는 기사를 검색하는 기능입니다 :def article_search(self, search_terms):
url = self.article_url % (self.language, search_terms)
response = requests.get(url)
tree = html.fromstring(response.text)
results = tree.xpath('//rev[@contentmodel='wikitext']/text()')
test_redirect = re.search('\#REDIRECT', str(results))
if test_redirect:
redirect = re.search(r'\[\[([A-Za-z0-9_]+)\]\]', str(results))
go_to = redirect.group(1)
article_search(go_to)
else:
return results
의 목표 블록이 검색 결과 실제로 다른 페이지 (if test_redirect
) 우리를 리디렉션하려고 있는지 확인하는 경우 - 다른 사람과 article_search(go_to)
으로 리디렉션되는 페이지를 검색하십시오. 리디렉션되지 않는 페이지에서 코드를 실행하면 정상적으로 작동합니다. 그러나 이에 리디렉션되는 페이지를 통해 실행하면 NameError: global name 'article_search' is not defined
이됩니다. 나는 이것이 아마 초보자 질문이라는 느낌을 갖지만, 내가 뭘 잘못하고 있는지 정말로 모르겠다. 어떤 도움이 필요합니까?
(그것을 가정하는 것은 이상한 StaticMethod를하지만, 인스턴스의 방법은 아닙니다). org/wiki/Recursion_ % 28computer_science % 29) 그리고'Python recursive function'을 위해 google을 사용할 수 있습니다. –
전체 스택 추적을 보여줍니다. 항상 전체 스택 추적을 표시하십시오. – Marcin