Python的命名空间和作用域
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,变量是拥有匹配对象的名字(标识符)。命名空间是一个包含了变量名称们(键)和它们各自相应的对象们(值)的字典。一个 Python 表达式可以访问局部命名空间和全局命名空间里的变量。如果一个局部变量和一个
千家信息网最后更新 2026年11月01日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安全错误
数据库的锁怎样保障安全
互联网是第几次科技革命的成果
互联网科技官网
科技平台互联网
科技和互联网公司
朗新科技与工业互联网
互联网金融 科技金融
西安互联网科技
互联网科技公司怎么样
互联网科技公司介绍
多迪互联网科技有限公司
重庆科技学院互联网
互联网还是高科技吗
辽宁互联网新科技
晋城互联网科技
爱医互联网络科技
江苏互联网智能科技软件
世界互联网科技成果奖
万物互联网智能科技
亚光科技低轨卫星互联网
黑龙江互联网科技公司
咖啡豆
小米移动互联网科技园
苏州找大状互联网科技有限公司
中国 科技 互联网
远信互联网科技
海南购全球互联网科技
北京大学互联网科技怎么样
阿里互联网科技企业
伍佰万互联网科技怎么赚钱
北京互联网科技类企业分布