Python的命名空间和作用域
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,变量是拥有匹配对象的名字(标识符)。命名空间是一个包含了变量名称们(键)和它们各自相应的对象们(值)的字典。一个 Python 表达式可以访问局部命名空间和全局命名空间里的变量。如果一个局部变量和一个
千家信息网最后更新 2025年12月02日Python的命名空间和作用域
变量是拥有匹配对象的名字(标识符)。命名空间是一个包含了变量名称们(键)和它们各自相应的对象们(值)的字典。一个 Python 表达式可以访问局部命名空间和全局命名空间里的变量。如果一个局部变量和一个全局变量重名,则局部变量会覆盖全局变量。每个函数都有自己的命名空间。类的方法的作用域规则和通常函数的一样。Python 会智能地猜测一个变量是局部的还是全局的,它假设任何在函数内赋值的变量都是局部的。因此,如果要给函数内的全局变量赋值,必须使用 global 语句。
global VarName 的表达式会告诉 Python, VarName 是一个全局变量,这样 Python 就不会在局部命名空间里寻找这个变量了。
例如,我们在全局命名空间里定义一个变量 Money。我们再在函数内给变量 Money 赋值,然后 Python 会假定 Money 是一个局部变量。然而,我们并没有在访问前声明一个局部变量 Money,结果就是会出现一个 UnboundLocalError 的错误。如下代码所示:
#!/usr/bin/python#-*- coding: UTF-8 -*-Money = 1000def Addmoney(): Money =Money + 1print MoneyAddmoney()print Money
运行结果:
1000Traceback (most recent call last): File "import.py", line 7, inAddmoney() File "import.py", line 5, in Addmoney Money =Money + 1UnboundLocalError: local variable 'Money' referenced before assignment
想要申明变量Money是全局变量,就要用 global 去申明.具体的实现代码如下:
#!/usr/bin/python#-*- coding: UTF-8 -*-Money = 1000def Addmoney(): global Money Money =Money + 1print MoneyAddmoney()print Money
运行结果
10001001
变量
全局
局部
空间
函数
结果
代码
对象
表达式
UTF-8
运行
作用
名字
名称
字典
就是
方法
智能
标识
标识符
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
对局服务器连接失败怎么退出去
数据库应用及技术研究生
数据库搜索原理
淮安网络安全运维
上海市贸易学校网络技术
瀚高数据库分区技术
服务器远程管理卡怎么安装
沭阳自动化网络技术市场
国家网络安全的龙头股票
警察需要掌握哪些网络技术
美团数据库产品
上海速极互联网科技
香港恒生互联网科技指数
梦幻西游手游转回服务器收费吗
定制软件开发 知识产权
辽宁网络时间服务器批发云主机
河南省运波网络技术有限公司
郑州学习软件开发价格
哲勤数据库服务器
emc服务器idc
软件开发技术名词
计算机网络安全面临的风险
安卓led控制软件开发
dpl安装显示服务器错误
怀旧服pvp和服务器有什么区别
电脑服务器管理器删了
我的世界地球服务器怎么进入
央视网消息网络安全稿件
分离数据库和备份数据库
教学软件开发制作公司