Types 如何在python中存储数据';什么是搁置模块?

Types 如何在python中存储数据';什么是搁置模块?,types,shelve,Types,Shelve,我是python新手,我有点困惑,因为我不能在shelve db中更改\存储整数数据(当然不像key,只是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.balan

我是python新手,我有点困惑,因为我不能在shelve db中更改\存储整数数据(当然不像key,只是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)

所以我应该只使用字符串类型还是有一些我还不知道的?)

要在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()

为了在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()