所以我在让这个系统正常工作时遇到了麻烦,我不确定我是否提出了正确的问题,但这就是正在发生的事情以及我想要发生的事情。
money = 1
def Stats():
print
print "money " + str(money)
def gainM():
money + 2
Stats()
if money == 1:
gainM()
现在,当它去印钞票时会发生什么,即使我在该值上添加 2,该值仍然是 1。 (代码不是我实际程序的副本,而是一个显示正在发生的情况的示例。)
money + 2
是一个空操作。你实际上必须分配money
到一个新的值
money = money + 2
# or
money += 2
但随后您会发现出现错误 - 您无法分配给函数范围之外的变量。您可以使用global
关键词:
global money
money += 2
这将允许您更改的值money
函数内。
不过,推荐的方式是通过money
作为参数:
def gainM(money):
money += 2
Stats()
return money
if money == 1:
money = gainM(money)
如果您使用第二个选项(您应该这样做),您还需要更改您的Stats
函数,有一个money
参数也是如此。
def Stats(money):
print
print "money " + str(money)
否则该函数将打印1
代替3
.
另一个建议 - 使用字符串格式。
'money %d' % money # the old way
'money {}'.format(money) # the new and recommended way
现在你通过了money
进入Stats
功能。
def gainM(money):
money += 2
Stats(money)
return money
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)