나는 다음과 같은 간단한 개체를 테스트하기 위해 노력하고있어 정의되지파이썬 전역 이름은
from WebCorpus import WebCorpus
def test_engine():
print "Testing..."
content = """This is a sample <a href="http://www.example.com">webpage</a> with
<a href="http://www.go.to">two links</a> that lead nowhere special."""
outlinks = ["http://www.example.com", "http://www.go.to"]
corpus = WebCorpus()
assert corpus.lookup("anything") == None
#(some more code)
test_engine()
를하지만 나에게 오류 제공 : 나가서 설명하자면 NameError : 전역 이름 '_index'입니다 정의되지 않았습니다. 나는 이것을 이해하지 못한다. _index는 __init__
에 명확하게 정의되어있다. 여기 내 실수는 무엇입니까? 감사합니다. (나는 또한 lookup
방법을 단순화했습니다) 코드를 단순화하고이 같은 변수를 설정할 수 있습니다
class WebCorpus(object):
def __init__(self):
self._index = {}
self._graph = {}
self._ranks = {}
self._corpusChanged = False
def lookup(self, keyword):
if keyword in self._index:
return self._index[keyword]
return None
또는 :
아, 고맙습니다. –
두 예제는 동일하지 않습니다. 두 번째 경우에는 'WebCorpus'의 모든 인스턴스가 인스턴스 속성이 아닌 클래스 속성이므로'_index','_graph' 및'_ranks' 속성을 공유합니다. –
동의하지만,'__init __. py'는 어떤 인수도 허용하지 않는다는 것을 명심하십시오, 이것은 @ ŞükrüHasdemir이 정말로 원했던 것입니다. 고맙습니다. – alecxe