在本例中,我有一本词典,当我打电话时,会显示“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