码迷,mamicode.com
首页 > 其他好文 > 详细

作用域

时间:2019-03-22 20:13:56      阅读:143      评论:0      收藏:0      [点我收藏+]

标签:click   调用   报错   opened   pre   技术   ==   src   使用   

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()
View Code

 

作用域

标签:click   调用   报错   opened   pre   技术   ==   src   使用   

原文地址:https://www.cnblogs.com/gaofeng-d/p/10580690.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!