假設你的價值觀是列表:
使用db = shelve.open('store',writeback=True)
然後追加值,以相同的密鑰。
因爲您的代碼不開放'store'
與writeback=True
你 必須分配一個變量的關鍵,temp = db['some variable']
,這將是 some value
的值,然後追加該變量,temp.append(another value)
,然後重新分配密鑰值,db['some variable'] = temp
。
應該不是你的代碼的第三行是db['some variable'] = another value'
爲了更換價值?
編輯:問題其他可能的含義是什麼?
你的意思是你要的數據庫加載到你的對象,並繼續使用「UI」代碼關閉程序後編輯呢?如果是這樣,那麼你可以這樣做:
class Update_MyStore(MyStore):
def __init__(self, store):
db = shelve.open(store)
for i in db:
setattr(self, i, db[i])
self.items()
self.store_in_db()
Update_MyStore('store')
編輯:另一種選擇,更新,如果是這樣的話,如果你想添加或更新特定項目:
while True:
store = shelve.open('store',writeback = True)
Item = input('Enter an item: ').capitalize() #I prefer str(raw_input('Question '))
if not Item or Item == 'Break':
break
store['item_quantity'][Item] = int(input(('Enter the number of {0} available in the store: ').format(Item)))
store['item_rate'][Item] = float(input(('Enter the rate of {0}: ').format(Item)))
store.sync()
store.close()
像[此](http://docs.python.org/2/library/shelve.html)?見11.4.2實施例 – MakeCents
'分貝[「一些變量」] =分貝[「一些變量」] +一些value'假設你打開與'寫回= TRUE'貨架。 – martineau
什麼是「一些價值」? 「另一個值」也是同樣的問題。他們是否列出?整型?文本? – Paco