原标题:第53p,函数名称空间与作用域,Python函数
大家好,我是杨数Tos,这是《从零基础到大神》系列课程的第53篇文章,第三阶段的课程:Python进阶知识:详细讲解Python中的函数(六)=====>Python中函数的名称空间与作用域(下篇)。
函数是非常重要的内容,在这里,我会用10篇左右的文章详细讲解Python中函数定义与使用的规则。
阅读提醒:建议小白先看一遍:【计算机基础知识】和【Python基础知识】课程,否则你不一定听得懂!
一、Python中的作用域
域指的是范围,作用域指的是作用的范围;在Python中,作用域分为全局作用域与局部作用域。
1、局部作用域
不同的函数(在没有嵌套的情况下),它们之间的名称空间是独立的,函数内定义的变量,只能在函数内使用。
相同名字的局部变量可以有多个,比如:函数A中有个变量x,函数B中也有个变量x,它们两都之间是相互独立的,修改任何一个都不会影响其他的变量x。
2、全局作用域
全局作用域一般是指作用在当前运行的.py文件下的名称空间,全局作用域的变量名具有惟一性;比如:定义了一个函数fun,在当前全局空间下就不能声明一个名为fun的变量了,否则会引发名字冲突。
3、关键字global与nonlocal
函数内的变量一般都是局部变量,如果想将函数内变量改为全局可用的变量,可以用global关键字在函数内进行声明;
例如: global 变量名;
如果不想把函数内的变量改成全局变量,又想把这个变量交给母函数或上n层函数使用,也可以使用关键字nonlocal进行声明;
例如:nonlocal 变量名;
关键字global与nonlocal的区别在于:
global声明的变量是全局可用;
nonlocal声明的变量还是局部变量,只是把作用域从当前函数扩大到了上一层或上n层函数内,作用域范围还是在函数内;
nonlocal声明参数属于函数内母函数参数,若母函数无此参数,则属于祖母函数,若整个函数都无此参数,报错。
以上是本期内容,如果有表达不对的内容,欢迎您的留言、斧正,我们一起天天向上。
感谢您的阅读,您的三连【关注、点赞、收藏】就是对我最大的支持,谢谢!
本文由杨数Tos原创,欢迎关注,带你一起长知识。返回搜狐,查看更多
责任编辑: