Python变量作用域详解
郝伟 2021/10/02
在本示例中,通过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)) # 打印全部变量
globle 原始数值:A=100 func1 直接调用: A=100 func2 内部定义: A=250 func3 全局调用: A=50 globle 最终数值:A=50
对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。