变量的范围始终是学习中必须了解和掌握的一个环节。 我们先从局部变量和全局变量开始,全面分析变量的作用域。
所谓局部变量是指函数中定义的变量。 函数内部定义的变量只能在函数内部使用,与函数外部的其他同名变量没有关系。 不同的函数可以定义同名的局部变量,每个函数中的变量不会受到影响。 示例代码如下:
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
局部变量只能在声明它们的函数内访问,而全局变量可以在整个程序中访问。 全局变量是在函数外部定义的变量,具有全局作用域。
接下来,用一个case来区分局部变量和全局变量,如例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 运行结果