擅长:python、mysql、java
<p>关于为什么你不能以你想做的方式去做你想做的事情,有一个有点冗长的讨论,但是公认的答案<a href="https://stackoverflow.com/questions/575196/why-can-a-function-modify-some-arguments-as-perceived-by-the-caller-but-not-oth">here</a>应该对你有用。实际上,Python中的所有参数都是通过对象引用传递的,因此,如果使用参数名称在函数中重新赋值,则不会更改传递给函数的变量所指向的值。你知道吗</p>
<p>你想做的是,你只需要给你的函数传递一个可变的类型,比如一个列表。因此,如果您有以下代码,它应该满足您对示例的期望:</p>
<pre><code>i=[0]
b=[0]
def increase(a):
a[0]+=1
for e in range (3):
increase(i)
increase(b)
print(i)
print(b)
</code></pre>