python函数的作用域和名称空间
2017-05-29 09:46
495 查看
#!/usr/bin/python # -*- coding utf8 -*- ''' 三种名称空间 内置名称空间 ''' #1.内置名称空间 随着Python解释器的启动产生 print(sum) print(max) #查看内置的所有 import builtins print(dir(builtins)) for i in dir(builtins): print(i) #全局名称空间:文件的执行会产生 指的是文件级别定义的名字 x = 1 if x == 1: y = 2 # 局部名称空间的有类级别 函数级别 模块级别 只在调用时临时绑定 结束调用即结束 class foo(): x = 's' pass #import this 查看 Namespaces are one honking great idea -- let's do more of those! #作用域:全局作用域globals(内置名称空间/全局名称空间) 局部作用域locals(局部名称空间) #名字的查找顺序: 局部名称空间 -->全局名称空间 -->内置名称空间 x = 1 def func(): x =2 print(x) print(locals()) #查看局部的作用域 print(globals()) func() print(globals()) #结果可以看到定义的变量x和函数func 以及 内置的名字builtins #print(locals()) #-------------------------------------------------------------------------- #全局作用域:全局有效,在任何位置都能被访问到,除非del删掉,否则会一直存活到文件执行完毕 #局部作用域的名字:局部有效,只能在局部范围调用,只在函数调用时才有效,调用结束就失效 x=1 #示例 全局可调用 def f1(): print(x) def foo(): print(x) #示例优先调用局部 def f(x): # x=4 def f2(): # x=3 def f3(): # x=2 print(x) f3() f2() f(4) #等同于函数内定义x=4
相关文章推荐
- python--函数的返回值、函数参数的使用、名称空间与作用域、函数嵌套、函数对象
- Day18:函数参数、函数嵌套、作用域、名称空间
- 函数对象、函数嵌套、名称空间与作用域、装饰器
- 函数对象、函数嵌套、名称空间与作用域、装饰器(day3)
- 函数 (二) 名称空间与作用域
- python全栈开发-Day9 函数对象、函数嵌套、名称空间与作用域(装饰器基础)
- python 函数 本地变量 函数的命名空间 变量的作用域
- Python(名称空间、函数嵌套、函数对象)
- 函数对象、函数嵌套、名称空间与作用域、装饰器
- python函数篇:名称空间、作用域和函数的嵌套
- Python函数作用域的查找顺序
- 王亟亟的Python学习之路(10)-函数对象的作用域,函数作为返回值,闭包
- Python 函数作用域
- 详解Python函数作用域的LEGB顺序
- python学习笔记三:函数及变量作用域
- python生成函数名称
- Python模块中的变量和函数的作用域
- Python学习04-函数模块作用域等
- javascript和python函数中变量作用域的区别
- Python获取Windows或Linux主机名称通用函数分享