我試圖測試以下簡單對象:Python的全局名稱沒有定義
class WebCorpus(object):
def __init__(self):
_index = {}
_graph = {}
_ranks = {}
_corpusChanged = False
def lookup(self, keyword):
if keyword in _index:
return _index[keyword]
return None
# (some irrelevant code)
有了:
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__
明確定義!我在這裏犯了什麼錯誤? 幫助讚賞。
哦,非常感謝。 –
這兩個例子並不等同,在第二種情況下,所有的WebCorpus實例將共享'_index','_graph'和'_ranks'屬性,因爲它們是類屬性而不是實例屬性。 –
同意,但請記住'__init __。py'不接受任何論據,我認爲,這是@ŞükrüHasdemir真正想要的。謝謝。 – alecxe