일부 사이트를 선반에 넣으려고하는데 선반이 사이트 개체를 허용하지 않습니다. 그것은리스트, 문자열, 튜플을 받아 들일 것입니다.하지만 사이트 객체를 넣자 마자 선반의 내용을 가져 오려고하면 충돌이 발생합니다.shelve 이상한 오류가 발생합니다.
그래서이 선반을 채울 때 :
def add_to_shelve(self, site):
db = shelve.open("database")
print site, site.url
for word in site.content:
db[word] = site.url #site.url is a string, word has to be one too
shelve.open("database")['whatever']
완벽하게 작동합니다.
하지만이 할 경우이 오류 메시지와 함께
def add_to_shelve(self, site):
db = shelve.open("database")
print site, site.url
for word in site.content:
db[word] = site #site is now an object of Site
shelve.open("database")['whatever']
오류를 :
AttributeError: 'module' object has no attribute 'Site'
나는 완전히 난처한 상황에 빠진거야, 그리고 pythondocs은 이상하게 많은 정보를 가지고 있지 않습니다 어느 한 쪽. 그들이 말하는 것은 선반에있는 키는 문자열이어야하지만 값이나 데이터는 "임의의 객체"일 수 있습니다.