我们正在制作一个简单的 MUD,作为一种“学习如何在 Python 中编程”项目。我们希望它是持久的,所以我们有一个 MySQL 数据库供 Python 脚本保存。但是,我们现在有点卡住了从数据库中提取一个整数,添加到它,然后再次保存它。这是我的代码:
initxp = cur.execute("SELECT Exp FROM CharactersDB WHERE ID=%s", name)
print "initxp is,", initxp
global xp
xp = int(initxp)
print "current xp is ", xp
global xpcounter
xpcounter = ("UPDATE CharactersDB SET Exp=%s WHERE ID=%s") #where is name variable
#save initial xp to db
cur.execute(xpcounter, (xp, name,))
db.commit()
#when you gain xp
def gainxp():
global xp
global xpcounter
xp = xp + 10
print name, "gains", xp, "xp!"
#save new xp to db
cur.execute(xpcounter, (xp, name,))
db.commit()
return xp
#save stats to the database,
#this funciton will be used in the character creation file
gainxp()
我没有任何错误,尽管我确实发生了一些奇怪的事情:
首先,当它打印“initxp”变量时,它每次都返回 1。“当前 xp”行也是如此。因此,当它进入 gainxp() 函数时,它只是将 1 加到 10,保存了 11 的总数,然后就开始了。
我们想要做的是取已经保存的 11 xp,再添加 10,保存,再次运行,然后再添加 10,这样我们就有 31xp,而不是每次都一致的 11,这显然打败了目的。
谢谢!