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
'money + 2' does not do anything。无论如何,这两个函数都不能访问'money' - 你应该把它们放在一个类中,或者把'money'作为参数并返回更新后的值。 – 2013-02-23 01:23:18