我是python的新手,我有点困惑,因为我无法更改\搁置数据库中存储整数数据(当然不像密钥,只是arg)。它是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 :(得分:0)
为了在shelve的数据库中保存一些数据,需要使用 writeback 参数。像一个:
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()