擅长:python、mysql、java
<p>当你打电话的时候</p>
<pre><code>#THROWS ERROR: Global name maxLengthPOI is not defined.
def modifyPoI_0(value):
global maxLengthPOI
</code></pre>
<p><code>maxLengthPOI</code>不存在。你知道吗</p>
<p>正如您在发布的第一个代码中所看到的,<code>maxLengthPOI</code>不是位于外部<code>def</code>的<code>global</code>。因此,当您调用<code>modifyPoI_0</code>时,它不存在,因为它无法从<code>populate_sheet</code>中退出。把它<code>global</code>也放在那里,就不会有问题了。你知道吗</p>
<p><code>global</code>的内容可以被认为是:如果不定义<code>global</code>并且在函数内更改变量,那么值不会全局更改,它只会在函数内更改。你知道吗</p>
<p>考虑一下:</p>
<pre><code>x = 2
print(x)
def func():
x = 4
print(x)
func()
print(x)
print(' ')
x = 2
print(x)
def func2():
global x
x = 4
print(x)
func2()
print(x)
</code></pre>
<p>这张照片:</p>
<pre><code>2
4
2
# See? x haven't changed, even i called a function which changes its value (It actually changed inside the function as you can see, but not globally)
2
4
4
# Now x changed, because i made the variable global, so it 'got out' of the function after its change
</code></pre>