首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

第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原创,欢迎关注,带你一起长知识。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200731A0JW0700?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券