摘要:
__builtins__ 模块包含内建名称空间中内建名字的集合。 其中大多数(如果不是全部的话)来自 __builtin__ 模块, 该模块包含内建函数, 异常以及其他属性。 在标准 Python 执行环境下,__builtins__ 包含 __builtin__ 的所有名字。python解释器首先加载内建名称空间,随后加载执行模块的全局名称空间,如果在执行期间调用了一个函数, 那么将创建出第三个名称空间, 即局部名称空间。如果在一个模块的顶层导入, 那么它的作用域就是全局的; 如果在函数中导入, 那么它的作用域是局部的。 阅读全文
摘要:
python能够改变变量作用域的代码段是def、class、lamda.if/elif/else、try/except/finally、for/while 并不能涉及变量作用域的更改,也就是说他们的代码块中的变量,在外部也是可以访问的变量搜索路径是:本地变量->全局变量1)如果函数中定义了同名的变量,则同名的全局变量被屏蔽,否则查找使用全局变量2)内嵌定义的函数中的变量的使用,如果内嵌函数中没有定义,则先查找包含此内嵌函数作用域中变量的定义,最后查找全局中变量的定义。3)注意=赋值时,不可变类型其实是产生了对原变量的引用,可变类型与原来的共享相同的内存。4)作用域由def、class、l 阅读全文