Python变量作用域详解 郝伟 2021/10/02 [TOC]
1. 简介
在本示例中,通过5次变量A的调用,演示了变量在不同域下的使用方法,全代码如下所示:
A = 100
def func1():
''' 如果内部不存在,则从全局进行调用 '''
print('func1 直接调用: A=' + str(A))
def func2():
''' 如果内部存在,则优先调用内部变量 '''
A=250
print('func2 内部定义: A=' + str(A))
def func3():
''' 如果想要修改外部的A,则需要使用global进行声明 '''
global A
A=50
print('func3 全局调用: A=' + str(A))
print('globle 原始数值:A=' + str(A)) # 打印全部变量
func1() # 局部变量
func2() # 局部变量
func3() # 局部变量
print('globle 最终数值:A=' + str(A)) # 打印全部变量
2. 输出
globle 原始数值:A=100
func1 直接调用: A=100
func2 内部定义: A=250
func3 全局调用: A=50
globle 最终数值:A=50
3. 分析
对5行输出分析解释如下。
globle 原始数值:A=100直接对全局变量A进行调用,输出原始值。func1 直接调用: A=100由于在func1中未定义A,所以使用的也是全局的A。func2 内部定义: A=250由于在func2中定义了A,所以此时有两个A,全局的A和func2中的A,在函数内调用时,默认调用函数内定义的A。func3 全局调用: A=50如果在函数内要修改全局的A,则需要使用 global 关键字。globle 最终数值:A=50在func3中对全局A进行了修改,所以A的最终值是50。