python空间_python 命令空间

1、命名空间

Python使用命名空间来记录变量的轨迹。命名空间是一个字典(dictionary) ,它的键就是变量名,它的值就是那些变量的值。命名空间的知识和作用域是类似的。其实就是全局变量和局部变量的问题。

2、命名空间查找顺序

当一行代码要使用变量 x 的值时,Python 会到所有可用的名字空间去查找变量,按照是顺序LEGB:

L:局部的(local)

特指当前函数或类的方法。如果函数定义了一个局部变量 x,或一个参数 x,Python 将使用它,然后停止搜索。

E:封闭的(Enclosing)

在函数体内定义了一个新的函数

G:全局的(Global)

特指当前的模块。如果模块定义了一个名为 x 的变量,函数或类,Python 将使用它然后停止搜索。

B:内置的(Built-in)

对每个模块都是全局的。作为最后的尝试,Python 将假设 x 是内置函数或变量。

如果 Python 在这些名字空间都找不到 x,它将放弃查找并引发一个 NameError 异常,如,NameError: name ' x' is not defined。

内置函数 locals(),globals() 是帮助我们查看当前行代码的命令空间。

1 g = 11

2 def func(a=2):3 b=3

4 print(locals())5 print(globals())6 func()

locals()和globals()有一个区别是,locals只读,globals可以写。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值