Python命名空间和作用域
变量是拥有匹配对象的名字(标识符)。命名空间是一个包含了变量名称们(键)和它们各自相应的对象们(值)的字典。
一个 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命名空间和作用域相关推荐
- [转载] Python命名空间和作用域
参考链接: Python命名空间和范围 Python命名空间和作用域 Python作用域和命名空间命名空间作用域 全局变量和局部变量global和nonlocal关键字 Python作用域和命名空间 ...
- Python命名空间和作用域窥探
转自:http://python.jobbole.com/81367/ Namespace and Scope(命名空间和作用域) namespace Namespace(只)是 从名字到对象的一个映 ...
- python控制modem的at指令_硬件设计MCU架构+Python命名空间和作用域
硬件设计-MCU架构 CISC结构的单片机 其数据线和指令线分时复用,称为冯-诺伊曼结构 优点:指令丰富,功能较强,但确定取指令和取数据不能同时进行,速度受限,且价格也很高:属于CISC结构的单片机有 ...
- python 命名空间和作用域
一.Namespace 命名空间 Namespace命名空间,命名空间是一个字典(dictionary),它的键就是变量名,它的值就是那些变量的值.命名空间的一大作用是避免名字冲突. python使用 ...
- Python命名空间
命名空间namespace 定义 我对于命名空间的理解是,由变量名到对象的一个映射,相当于字典中的key对应一个values.所以在同一个环境中,不能有相同的key,但在不同的环境中,key的值是可以 ...
- Python分享:命名空间和作用域的基础知识整合
什么是命名空间? 命名空间是一个系统,它对Python中的每个对象都有一个唯一的名称.对象可能是变量或方法. Python本身以Python字典的形式维护名称空间. 在类似的行中,Python解释器可 ...
- python命名空间特性_Python命名空间与作用域
名称空间名称空间(namespaces):用于存放名字与内存地址绑定关系的地方,是对栈区的划分 作用:名称空间可以使栈区中存放相同的名字,从而解决命名冲突 名称空间分为三种:内置名称空间 全局名称空间 ...
- 21 Python模块、import语句、搜索路径、变量、命名空间和作用域、dir函数、globals()和locals()函数、reload()函数、Python中的包
21Python模块 Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句. 模块让你能够有逻辑地组织你的 Python ...
- Python基础-作用域和命名空间(Scope and Namespace)
在Python中,对象是独立的,不同作用域中的不同名字都可以被绑定在同一个对象上,当然对这个对象的修改会影响所有的引用.赋值操作就是名字和对象的绑定或重绑定.这和C++中的引用是一样的. 1,基础概念 ...
最新文章
- 修复.NET的HttpClient
- java concurrent 框架,java.util.concurrent 包下的 Synchronizer 框架
- python编程前面需要一个空格怎么做_初学python,不明白代码之间时空格的用处
- C# WebProxy POST 或者 GET
- 操作系统实验报告13:线程池简单实现
- 使用组件化开发思路替换 SAP Spartacus 的 Logo
- ajax时间控件,带有ajax的JQuery中的插件datetimepicker出错
- 第三章 组装个人计算机
- 最好用的JQuery插件集合以及组合拳
- 一个桌面系统的微信公众号开发
- html5 dom 结构,HTML5 DOM扩展
- mysql中文排序(按照中文拼音顺序排序)
- js获取月的第一天、最后一天
- Docker Study Note
- 天嵌科技TQ2440的uboot启动流程分析学习笔记
- Oracle 数据库学习
- ping命令指定包大小
- iOS进阶课程-Passbook编程-关东升-专题视频课程
- 网友评选最好玩实用的二十大良心网站,You Know?!
- 五分钟制作sql注入靶场