变量的作用域始终是Python学习中一个必须理解掌握的环节,下面我们从局部变量和全局变量开始全面解析Python中变量的作用域。
所谓局部变量,指的是定义在函数内的变量。定义在函数内的变量,只能在函数内使用,它与函数外具有相同名称的其他变量没有任何关系。不同的函数,可以定义相同名字的局部变量,并且各个函数内的变量不会产生影响。示例代码如下:
def test_one():
number = 100
print('test_one中的number值为:%d'%number)
def test_two():
number = 200
print('test_two中的number值为%d'%number)
test_one()
test_one中的number值为:100
test_two()
test_two中的number值为200
局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。全局变量是定义在函数外的变量,它拥有全局作用域。
接下来,通过一个案例来区分局部变量和全局变量,具体如例6-9所示。
例6-9 全局变量和局部变量
result = 100 # 全局变量
def sum(a, b):
result = a + b # 局部变量
print('函数内的result的值为: ', result) # result在这里是局部变量
return result
# 调用sum函数
sum(100, 200)
print('函数外的变量result是全局变量,等于', result)
运行结果如图6-17所示。
图6-17 运行结果