python全局变量的用法,python中全局变量和局部变量的定义
Python的全局变量和局部变量
1.变量
变量:临时存储数据的容器:工具!生活:私人工具;公共工具;
2.变量类型
每个人都可以使用:全局变量只有当前函数可以使用的变量:局部变量。
python变量的顺序:当前作用域中的局部变量-外部作用域变量-当前模块中的全局变量-python内置变量
3.声明全局变量
声明一个全局变量,在函数之外声明的变量:全局变量,从声明的地方开始~这个变量可以用在当前文件的所有位置。
Jobs=爬虫开发工程师 #全局变量
def eat():
食物=“焖菜”#局部变量
打印(局部变量:,食物)
打印(全局变量:,作业)
#执行函数中的代码
吃()
#打印数据
打印(全局变量:,作业)
Print(局部变量:,food) #此处出错,因为food是一个局部变量
未解析的引用“food”无法解析(解释)引用的变量:food。错误:名称 food 未定义变量food未定义!
4.修改全局变量。
变量:全局变量局部变量全局变量:在函数外部声明并可从当前文件中声明的开头访问的变量局部变量:在函数内部声明并只能在当前函数中访问的变量;出函数了~没人能解析。
如果要在函数中使用全局变量:我该怎么做?1)如果函数中只查询全局变量的值:直接使用。2)如果要在函数中修改全局变量的值:全局变量名。函数中global的含义:1)全局变量名称:表示函数中要使用的具有指定名称的全局变量。2)全局变量名称:意思是在函数中声明一个全局变量。
示例:
Name=kadttt #全局变量
Print(函数外部查询变量:,名称)
定义测试():
Global name #声明要在函数中使用的全局变量名。
Global msg #在函数中声明并定义了一个全局变量msg。
Print(函数内部查询变量:,name) # kadttt
打印(“函数内部操作变量”)
年龄=18岁
打印(“函数:”中的局部变量,年龄)
Name=tom #修改全局变量名的值
msg= hello函数中的全局变量
# UnboundLocalError:在赋值前引用了局部变量“name”
#未绑定的局部变量错误:必须在修改前声明局部变量名称!
#如果在函数中定义了具有相同全局变量名的变量~默认函数中的变量是具有相同名称的局部变量。
测试()
Print(再次在此打印全局变量:,name) # tom
打印(邮件)
5.函数中全局变量和局部变量的重命名问题。
示例:
name=kadttt
定义测试():
# print(name) #这里是错误位置,因为name变量下面赋了一个值,这个变量就成了局部变量。
原因:函数中赋了变量名,但没有用global关键字引入全局变量。
因此name成为函数中的一个局部变量。
在使用变量的数据之前,必须声明和定义变量;第10行代码没有声明先用,所以有错误!
:返回:
Name=tom #如果在函数中给一个与全局变量同名的变量赋值:这个变量会被立即解释为局部变量。
print(name)# If[全局变量局部变量]同名;函数优先考虑局部变量;不会影响全局变量的数据
Print(全局变量:,名称)
测试()
Print(全局变量:,名称)
6.extended nonlocal关键字用于在函数或其他作用域中使用外部(非全局)变量。
非局部声明的变量不是局部变量或全局变量,而是外部嵌套函数内部的变量。
def make_counter():
计数=0
定义计数器():
非局部计数
计数=1
返回计数
返回计数器
定义make_counter_test():
mc=make _计数器()
打印(mc())
打印(mc())
打印(mc())
make _计数器_测试()
上面的输出是:1 2 3
重要:在项目开发过程中,除了公共数据,其他变量,尽量使用局部变量,避免使用全局变量。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。