变量是拥有匹配对象的名字(标识符)。命名空间是一个包含了变量名称们(键)和它们各自相应的对象们(值)的字典。
一个 Python 表达式可以访问局部命名空间和全局命名空间里的变量。如果一个局部变量和一个全局变量重名,则局部变量会覆盖全局变量。
每个函数都有自己的命名空间。类的方法的作用域规则和通常函数的一样。
Python 会智能地猜测一个变量是局部的还是全局的,它假设任何在函数内赋值的变量都是局部的。
因此,如果要给函数内的全局变量赋值,必须使用 global 语句。
global VarName 的表达式会告诉 Python, VarName 是一个全局变量,这样 Python 就不会在局部命名空间里寻找这个变量了。
例如,我们在全局命名空间里定义一个变量 Money。我们再在函数内给变量 Money 赋值,然后 Python 会假定 Money 是一个局部变量。然而,我们并没有在访问前声明一个局部变量 Money,结果就是会出现一个 UnboundLocalError 的错误。取消 global 语句的注释就能解决这个问题。

#!/usr/bin/python
# -*- coding: UTF-8 -*-Money = 2000
def AddMoney():# 想改正代码就取消以下注释:# global MoneyMoney = Money + 1print Money
AddMoney()
print Money

Python命名空间和作用域相关推荐

  1. [转载] Python命名空间和作用域

    参考链接: Python命名空间和范围 Python命名空间和作用域 Python作用域和命名空间命名空间作用域 全局变量和局部变量global和nonlocal关键字 Python作用域和命名空间 ...

  2. Python命名空间和作用域窥探

    转自:http://python.jobbole.com/81367/ Namespace and Scope(命名空间和作用域) namespace Namespace(只)是 从名字到对象的一个映 ...

  3. python控制modem的at指令_硬件设计MCU架构+Python命名空间和作用域

    硬件设计-MCU架构 CISC结构的单片机 其数据线和指令线分时复用,称为冯-诺伊曼结构 优点:指令丰富,功能较强,但确定取指令和取数据不能同时进行,速度受限,且价格也很高:属于CISC结构的单片机有 ...

  4. python 命名空间和作用域

    一.Namespace 命名空间 Namespace命名空间,命名空间是一个字典(dictionary),它的键就是变量名,它的值就是那些变量的值.命名空间的一大作用是避免名字冲突. python使用 ...

  5. Python命名空间

    命名空间namespace 定义 我对于命名空间的理解是,由变量名到对象的一个映射,相当于字典中的key对应一个values.所以在同一个环境中,不能有相同的key,但在不同的环境中,key的值是可以 ...

  6. Python分享:命名空间和作用域的基础知识整合

    什么是命名空间? 命名空间是一个系统,它对Python中的每个对象都有一个唯一的名称.对象可能是变量或方法. Python本身以Python字典的形式维护名称空间. 在类似的行中,Python解释器可 ...

  7. python命名空间特性_Python命名空间与作用域

    名称空间名称空间(namespaces):用于存放名字与内存地址绑定关系的地方,是对栈区的划分 作用:名称空间可以使栈区中存放相同的名字,从而解决命名冲突 名称空间分为三种:内置名称空间 全局名称空间 ...

  8. 21 Python模块、import语句、搜索路径、变量、命名空间和作用域、dir函数、globals()和locals()函数、reload()函数、Python中的包

    21Python模块 Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块让你能够有逻辑地组织你的 Python ...

  9. Python基础-作用域和命名空间(Scope and Namespace)

    在Python中,对象是独立的,不同作用域中的不同名字都可以被绑定在同一个对象上,当然对这个对象的修改会影响所有的引用.赋值操作就是名字和对象的绑定或重绑定.这和C++中的引用是一样的. 1,基础概念 ...

最新文章

  1. 修复.NET的HttpClient
  2. java concurrent 框架,java.util.concurrent 包下的 Synchronizer 框架
  3. python编程前面需要一个空格怎么做_初学python,不明白代码之间时空格的用处
  4. C# WebProxy POST 或者 GET
  5. 操作系统实验报告13:线程池简单实现
  6. 使用组件化开发思路替换 SAP Spartacus 的 Logo
  7. ajax时间控件,带有ajax的JQuery中的插件datetimepicker出错
  8. 第三章 组装个人计算机
  9. 最好用的JQuery插件集合以及组合拳
  10. 一个桌面系统的微信公众号开发
  11. html5 dom 结构,HTML5 DOM扩展
  12. mysql中文排序(按照中文拼音顺序排序)
  13. js获取月的第一天、最后一天
  14. Docker Study Note
  15. 天嵌科技TQ2440的uboot启动流程分析学习笔记
  16. Oracle 数据库学习
  17. ping命令指定包大小
  18. iOS进阶课程-Passbook编程-关东升-专题视频课程
  19. 网友评选最好玩实用的二十大良心网站,You Know?!
  20. 五分钟制作sql注入靶场

热门文章

  1. 脚本调试工具 Microsoft Script Debugger
  2. 郑州轻工业学院第八届玲珑杯校赛题解
  3. hdu - 2512 一卡通大冒险 (斯特灵数 贝尔数)
  4. nyoj239月老的难题
  5. 2019牛客暑期多校训练营(第九场)-E All men are brothers
  6. 【校招面试 之 C/C++】第17题 C 中的malloc相关
  7. 【原创】 关于全局静态变量初始化
  8. combobox DataGridView
  9. Delphi编程注意事项
  10. flash也玩p2p