python名称空间的作用范围从大到小的顺序是_第53p,函数名称空间与作用域,Python函数...

原标题:第53p,函数名称空间与作用域,Python函数

大家好,我是杨数Tos,这是《从零基础到大神》系列课程的第53篇文章,第三阶段的课程:Python进阶知识:详细讲解Python中的函数(六)=====>Python中函数的名称空间与作用域(下篇)。

4c262d5d60861e8ab1bf39f8acdd3653.png

函数是非常重要的内容,在这里,我会用10篇左右的文章详细讲解Python中函数定义与使用的规则。

阅读提醒:建议小白先看一遍:【计算机基础知识】和【Python基础知识】课程,否则你不一定听得懂!

一、Python中的作用域

域指的是范围,作用域指的是作用的范围;在Python中,作用域分为全局作用域与局部作用域。

1、局部作用域

不同的函数(在没有嵌套的情况下),它们之间的名称空间是独立的,函数内定义的变量,只能在函数内使用。

相同名字的局部变量可以有多个,比如:函数A中有个变量x,函数B中也有个变量x,它们两都之间是相互独立的,修改任何一个都不会影响其他的变量x。

6d1b54cfab651750a760a799eddb5029.png

2、全局作用域

全局作用域一般是指作用在当前运行的.py文件下的名称空间,全局作用域的变量名具有惟一性;比如:定义了一个函数fun,在当前全局空间下就不能声明一个名为fun的变量了,否则会引发名字冲突。

8bb5e998cc5a20434ccff8f7e2e4abe6.png

3、关键字global与nonlocal

函数内的变量一般都是局部变量,如果想将函数内变量改为全局可用的变量,可以用global关键字在函数内进行声明;

例如: global 变量名;

58d6b9997a32f40e5752faf50734dcc8.png

如果不想把函数内的变量改成全局变量,又想把这个变量交给母函数或上n层函数使用,也可以使用关键字nonlocal进行声明;

例如:nonlocal 变量名;

a3a8b7fd5b9cd344ae1026aa78a487c6.png

关键字global与nonlocal的区别在于:

global声明的变量是全局可用;

nonlocal声明的变量还是局部变量,只是把作用域从当前函数扩大到了上一层或上n层函数内,作用域范围还是在函数内;

nonlocal声明参数属于函数内母函数参数,若母函数无此参数,则属于祖母函数,若整个函数都无此参数,报错。

89e8833676e83e3fab19142eba36de07.png

以上是本期内容,如果有表达不对的内容,欢迎您的留言、斧正,我们一起天天向上。

感谢您的阅读,您的三连【关注、点赞、收藏】就是对我最大的支持,谢谢!

本文由杨数Tos原创,欢迎关注,带你一起长知识。返回搜狐,查看更多

责任编辑:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值