擅长:python、mysql、java
<p>是的,他们是。假设重新编译()有副作用。每次对p赋值时,即每次调用包含所述赋值的函数时,都会发生这种副作用。你知道吗</p>
<p>可以验证:</p>
<pre><code>def foo():
print("ahahaha!")
return bar
def f():
return foo()
def funcWithSideEffect():
print("The airspeed velocity of an unladen swallow (european) is...")
return 25
def funcEnclosingAssignment():
p = funcWithSideEffect()
return p;
a = funcEnclosingAssignment()
b = funcEnclosingAssignment()
c = funcEnclosingAssignment()
</code></pre>
<p>每次调用封闭函数(类似于您的qcharToUnicode)时,都会打印语句,表明p正在被重新计算。你知道吗</p>