函数-全局变量
如果在函数里面定义了一个变量, 它只在函数里面有用, 和函数外面同名的变量完全没关系.
大家注意, 是函数里定义了一个变量! 如果只是在函数里使用一个变量, 那么这个变量可能就是函数外的变量.
局部变量
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 局部变量
l = range(3)
print l
def f():
l = range(4)
print l
f()
print l # [0, 1, 2]. l并没有变化.
全局变量
#!/usr/bin/env python
# -*- coding: utf-8 -*-
l = range(3)
print l
def f():
global l # 这里指明了l是一个全局变量, 它就是函数外面定义的那个l
l = range(4)
print l
f()
print l # [0, 1, 2, 3]. 函数里面改变了函数外面的l.
函数里面没有用global指明, 但还是影响了外面的变量
这里涉及了引用的概念, 我们会在后面介绍. 这是个比较有坑的地方, 大家要注意
#!/usr/bin/env python
# -*- coding: utf-8 -*-
l = range(3)
def f():
print l
l.append(4)
print l
f()
print l # [0, 1, 2, 3]. 函数里面改变了函数外面的l.