码迷,mamicode.com
首页 > 编程语言 > 详细

Python全栈之路----函数进阶----名称空间

时间:2019-02-15 22:35:36      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:全局变量   名称   glob   bsp   作用域   内存   定义   命名空间   --   

又名name space,顾名思义就是存放名字的地方,存什么名字呢?举例说明,若变量x=1,1存放于内存中,那名字x存放在哪里呢?名称空间正是存放名字x与1绑定关系的=地方

名称空间共3种,分别如下

  • locals:是函数内的名称空间,包括局部变量和形参
  • globals:全局变量,函数定义所在模块的名称空间
  • builtins:内置模块的名称空间(Python解释器自带的内置模块)
>>> x = 1
>>> locals() #处在该区域,打印该区域所有变量
{__name__: __main__, __doc__: None, __package__: None, __loader__: <class _frozen_importlib.BuiltinImporter>, __spec__: None, __annotations__: {}, __builtins__: <module builtins (built-in)>, x: 1}
>>> globals()
{__name__: __main__, __doc__: None, __package__: None, __loader__: <class _frozen_importlib.BuiltinImporter>, __spec__: None, __annotations__: {}, __builtins__: <module builtins (built-in)>, x: 1}
>>> _builtins_
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name _builtins_ is not defined
>>> dir(_builtins_)
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name _builtins_ is not defined

不同变量的作用域不同就是由这个变量所在的命名空间决定的。

作用域即范围

  • 全局范围:全局存活,全局有效
  • 局部范围:拘捕存活,局部有效

查看作用域方法:locals()  globals()

 

Python全栈之路----函数进阶----名称空间

标签:全局变量   名称   glob   bsp   作用域   内存   定义   命名空间   --   

原文地址:https://www.cnblogs.com/Moxiaoyu666/p/10386197.html

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