Python学习笔记:Python的名字空间
来源:互联网 发布:mac python 编辑:程序博客网 时间:2024/03/29 19:18
基本概念:
1. Python的世界是名字和对象的世界。
2.名字空间是名字到对象的映射。
3.赋值是名字与对象的绑定, 不拷贝数据。
例子说明:
<pre style="background-color:#2b2b2b;color:#a9b7c6;font-family:'宋体';font-size:9.0pt;"><span style="color:#cc7832;"><strong>def </strong></span><span style="font-weight:bold;">scope_test</span>(): <span style="color:#cc7832;"><strong>def </strong></span><span style="font-weight:bold;">do_local</span>(): <span style="color:#808080;"># "local ssam" 对象绑定到 local namespace的spam</span><span style="color:#808080;"> spam </span>= <span style="color:#008080;">"local spam"</span><span style="color:#008080;"></span><span style="color:#008080;"> </span><span style="color:#cc7832;"><strong>def </strong></span><span style="font-weight:bold;">do_nonlocal</span>(): <span style="color:#808080;"># 声明不要让spam绑定到local namespace</span><span style="color:#808080;"> </span><span style="color:#cc7832;"><strong>nonlocal </strong></span>spam spam = <span style="color:#008080;">"nonlocal spam"</span><span style="color:#008080;"></span><span style="color:#008080;"> </span><span style="color:#cc7832;"><strong>def </strong></span><span style="font-weight:bold;">do_global</span>(): <span style="color:#808080;"># 声明将spam绑定到module 的global namespace</span><span style="color:#808080;"> </span><span style="color:#cc7832;"><strong>global </strong></span>spam spam = <span style="color:#008080;">"global spam"</span><span style="color:#008080;"></span><span style="color:#008080;"> </span><span style="color:#808080;"># 在scope_test()的local namespace里将spam与"test spam"绑定</span><span style="color:#808080;"> </span>spam = <span style="color:#008080;">"test spam"</span><span style="color:#008080;"> </span><span style="color:#808080;"># 调用do_local(), 会在do_local()的生命周期里将do_local()的local namespace与"local spam"绑定, 调用结束后删除绑定</span><span style="color:#808080;"> </span>do_local() <span style="color:#808080;"># 打印scope_test()的local namespace里的spam</span><span style="color:#808080;"> </span><span style="color:#8888c6;">print</span>(<span style="color:#008080;">"After local assignment:"</span><span style="color:#cc7832;">, </span>spam) <span style="color:#808080;"># 调用do_nolocal(), 在do_nolocal里声明了不要将spam与do_nolacal()的local namespace绑定, python会在外层绑定,</span><span style="color:#808080;"> # scope_test()的local namespace的spam将会被绑定到"nolocal spam"</span><span style="color:#808080;"> </span>do_nonlocal() <span style="color:#808080;"># 打印scope_test()的local namespace的spam</span><span style="color:#808080;"> </span><span style="color:#8888c6;">print</span>(<span style="color:#008080;">"After nonlocal assignment:"</span><span style="color:#cc7832;">, </span>spam) <span style="color:#808080;"># 调用do_global(), do_global()里将"global spam"于模块的global namespace的spam绑定,</span><span style="color:#808080;"> </span>do_global() <span style="color:#808080;"># 打印scope_test()的local namespace的spam</span><span style="color:#808080;"> </span><span style="color:#8888c6;">print</span>(<span style="color:#008080;">"After global assignment:"</span><span style="color:#cc7832;">, </span>spam)scope_test()<span style="color:#808080;"># 打印模块global namespace的spam</span><span style="color:#8888c6;">print</span>(<span style="color:#008080;">"In global scope:"</span><span style="color:#cc7832;">, </span>spam)
输出结果:
After local assignment: test spam
After nonlocal assignment: nonlocal spam
After global assignment: nonlocal spam
In global scope: global spam
0 0
- Python学习笔记:Python的名字空间
- Python 名字空间
- 【python】locals()、globals()与名字空间
- Python学习笔记-色彩空间转换
- iOS: 学习笔记, Swift名字空间
- python的学习笔记
- python的学习笔记
- Python的学习笔记
- python 名字的漂亮度
- 【python】:python学习笔记
- Python学习笔记之一:Python的字符串
- 【Python】Python学习笔记(类的继承)
- 【Python】初识Python的学习笔记
- Python学习笔记·Python的类型
- python 3.0 中的名字空间(namespaces)及生命周期
- Python学习笔记:作用域和命名空间
- 今天学习Python的笔记
- python别人的学习笔记
- html5移动端适配使用流体布局经常遇到的坑
- 实验二.任务三.TASK
- 回文检测(包含中文与字符)
- C# Tcp协议收发数据(TCPClient发,Socket收)
- Jenkins构建Android项目持续集成之findbugs的使用
- Python学习笔记:Python的名字空间
- oracle的sql
- 3分频器 verilog解析
- 窗体效果
- oracleorc存储过程&函数&触发器
- java 中基本数据类型在内存中占据的存储大小
- 判断平年闰年
- Linux用户和组的操作
- orc的plsql和动态sql