作用域
Posted gaofeng-d
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了作用域相关的知识,希望对你有一定的参考价值。
2.作用域:变量或者函数的声明周期
里面是里面 外面是外面
内置的 比如print() 函数
# 最开始开辟一个自己的命名空间 -内置命名空间
#加载顺序:内置=>全局=>局部
#取值顺序: 局部==>全局==>内置
globals() # 查看全局作用域中的内容
locals() #查看当前作用域的内容
3.global nonlocal 对于外层变量 如果没有相关关键字修饰的话 只能读 不能改变
global a # 表示当前作用域使用的a是全局中的变量
这种 改变是危险的 共享的改变是危险的
还可以定义一个全局的a(强制的)
nonlocal a # 找的是局部里面,离他最近的上层的那个变量
直到找到为止
# 7, 下面代码成立么?如果不成立为什么报错?怎么解决? # 7.1 a = 2 # def wrapper(): # print(a) # wrapper() # 不报错 调用顺序是局部、全局、内置 # 7.2 # a = 2 # def wrapper(): # global a # a += 1 # print(a) # # # wrapper() # 这个报错 添加一个关键字 global,只能这个全局变量 不能改变 # 要改变的话 需要加 关键字global # 7.3 # def wrapper(): # a = 1 # def inner(): # nonlocal a # print(a) # # inner() # wrapper() # 不报错 读这个变量是可以的 # 7.4 # def wrapper(): # a = 1 # def inner(): # a += 1 # print(a) # inner() # wrapper()
以上是关于作用域的主要内容,如果未能解决你的问题,请参考以下文章