这里是我的代码:
def displayInventory ():
print ("Inventory: " + str(inventory))
def enterEcdysis():
global xcash
xcash -= 1
displayInventory()
xcash = 3
inventory = [str(xcash) + ' Cash',]
enterEcdysis()
我试图让这个打印['2 Cash,']
,但是当我运行它,它仍然出来为3
。我不知道我在做什么错在这里。不宜xcash -= 1
拿一个从全局变量了吗?
这是更新xcash
。问题是inventory
是过时的。你将它设置为['3 Cash']
调用enterEcdysis()
之前和xcash
被修改后,你不更新它。
改变你的print语句直接打印xcash
,你会看到它的正常工作:
def displayInventory ():
print ("Inventory: {} Cash".format(xcash))
xcash = 3
inventory = [str(xcash) + ' Cash',]
enterEcdysis()
考虑上面的代码行。你已经创建并使用xcash调用enterEcdysis之前是3-1的电流值设置变量库存。在enterEcdysis,你已经减去1从xcash的价值,但变量库存保持不变。因此,当你,以后,显示变量库存的值,您仍示出资源的价值,当它被定义(当仍然xcash等于3。)
def displayInventory ():
print ("Inventory: " + str(inventory) + "\t" + str(xcash))
如果修改displayInventory如上,你会看到xcash的价值确实改变,但你不能改变存量的价值。