2017-11-22 15 views
1

Im는 Python에서 새로 생겼고, 나는 shelble db에있는 \ store 정수 데이터를 변경할 수 없기 때문에 조금 혼란스러워했다. 그것은 py (선반) 기능입니까?파이썬의 쉘브 모듈에 데이터를 저장하는 방법은 무엇입니까?

테스트 코드 :

import shelve 

class User: 
    def __init__(self, name = 'no name', user_id = '0', balance = 0): 
     self.name = name 
     self.user_id = user_id 
     self.balance = balance 
    def addUser(self, name, user_id): 
     db = shelve.open('class_user') 
     db[user_id] = User(name=name, user_id=user_id) 
     db.close() 
    def updateBalance(self, user_id, value): 
     db = shelve.open('class_user') 
     db[user_id].balance = value 
     db.close() 
    def printBalance(self, user_id): 
     db = shelve.open('class_user') 
     print(db[user_id].name, 'balance is', db[user_id].balance, sep=' ', end='!\n') 
     db.close() 
################################################################### 

# test values 
value = 1000 
user_id = '1' 
name = 'Mike' 

User.printBalance(User, user_id=user_id) 
User.updateBalance(User, user_id=user_id, value=value) 
User.printBalance(User, user_id=user_id) 

그래서 난 그냥 문자열 유형을 사용하거나 내가 아직 모르는 어떤 일부가) 사전에 감사가해야합니까?!

답변

0

쉘브의 데이터베이스에 일부 데이터를 저장하려면 쓰기 되돌림 매개 변수를 사용해야합니다. 좋아요 :

def updateBalance(self, user_id, value): 
    db = shelve.open('class_user', writeback=True) 
    db[user_id].balance = value 
    #db.sync() #excess cause of db.close() 
    db.close()