在本例中,我有一本詞典,當我打電話時,會顯示「Ember Attack」。使用Python中的類詞典
#import shelve
class Pokemon():
"""Each pokemon's attributes"""
def __init__(self):
self.id=[]
self.var1=[]
self.var2=[]
self.var3=[]
self.var4=[]
self.var5=[]
def __str__(self):
showList=['id','var1', 'var2', 'var3', 'var4', 'var5']
#dict1=shelve.open("shelve.dat")
dict1={}
dict1["Charmander"]=Pokemon()
dict1["Charmander"].var1="Ember Attack"
#dict1.sync()
print dict1["Charmander"].var1
#dict1.close()
但是,當我開始使用貨架而不是字典時,我在var1上調用時出現空白。
import shelve
class Pokemon():
"""Each patient's attributes"""
def __init__(self):
self.id=[]
self.var1=[]
self.var2=[]
self.var3=[]
self.var4=[]
self.var5=[]
def __str__(self):
showList=['id','var1', 'var2', 'var3', 'var4', 'var5']
dict1=shelve.open("shelve.dat")
#dict1={}
dict1["Charmander"]=Pokemon()
dict1["Charmander"].var1="Ember Attack"
dict1.sync()
print dict1["Charmander"].var1
dict1.close()
唯一的區別是我製作了dict1而不是普通的字典。它可能與內存範圍有關。無論如何,有人可以幫我修改我的代碼,以便它可以在貨架上工作嗎?謝謝!
「工作」是什麼意思?你能提供一些關於你希望看到什麼發生以及沒有發生什麼的暗示嗎? – 2010-08-04 22:46:24
使用貨架方法,我希望能夠調用dict1 [「Charmander」]。var1並返回「Ember Attack」。當我現在這樣做時,只返回一個空的'[]'。 – Brian 2010-08-04 23:05:30