<p>Python是静态范围的</p>
<p><a href="http://python-textbok.readthedocs.io/en/1.0/Variables_and_Scope.html" rel="nofollow noreferrer">http://python-textbok.readthedocs.io/en/1.0/Variables_and_Scope.html</a></p>
<pre><code># This is a global variable
a = 0
if a == 0:
# This is still a global variable
b = 1
def my_function(c):
# this is a local variable
d = 3
print(c)
print(d)
# Now we call the function, passing the value 7 as the first and only parameter
my_function(7)
# a and b still exist
print(a)
print(b)
# c and d don't exist anymore these statements will give us name errors!
print(c)
print(d)
</code></pre>
<p>全局关键字起作用,但可能适得其反。。。你知道吗</p>
<blockquote>
<p>Note that it is usually very bad practice to access global variables
from inside functions, and even worse practice to modify them. This
makes it difficult to arrange our program into logically encapsulated
parts which do not affect each other in unexpected ways. If a function
needs to access some external value, we should pass the value into the
function as a parameter. If the function is a method of an object, it
is sometimes appropriate to make the value an attribute of the same
object</p>
</blockquote>