擅长:python、mysql、java
<p><strong>简短回答</strong>:您试图通过引用传递一个不可变的值(整数)并希望更新它。把它包装在一个很小的班级里,或者列表里,或者像你现在做的那样口述。但是,如果您能够稍微修改代码,还有其他方法。你知道吗</p>
<p><strong>较长的答案</strong>:(注意:这可能不是您问题的直接答案。)</p>
<p>我知道这是一个人为的例子。但是想想你真正的问题<code>g2()</code>是否需要知道有一个变量应该作为其调用的一部分进行更新?有没有一种方法可以让更新变量的责任属于定义变量的责任?<code>f2()</code>是定义变量并更新它的那个吗?这样就可以将对该变量的所有更改限制在一个非常小的周长(<code>f2()</code>)。你知道吗</p>
<p>在这种情况下,我的方法是:</p>
<pre><code>def f2():
n2 = 0
for _ in range(100):
n2 += g2()
print(n2)
def g2():
return 1 if randint(1,100)>50 else 0
</code></pre>