【发布时间】:2010-08-04 22:42:49
【问题描述】:
对于这个例子,我有一个字典,当我调用它时,会显示“Ember Attack”。
#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 做成了一个搁置的字典,而不是一个普通的字典。它可能与内存范围或其他东西有关。无论如何,有人可以帮我修改我的代码,使其适用于书架吗?谢谢!
【问题讨论】:
-
“工作”是什么意思?你能提供一些关于你希望看到什么发生和没有发生什么的提示吗?
-
使用shelf 方法,我希望能够调用dict1["Charmander"].var1 并返回"Ember Attack"。当我现在这样做时,只返回一个空的
[]。
标签: python dictionary shelve