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

廖雪峰Python08

返回函数

函数作为返回值

函数不仅可以作为函数参数,还可以作为函数返回结果

闭包

如果在一个内部函数里对外部作用域(但不是全局作用域)的变量进行引用,内部函数称为闭包(closure)

参考: https://www.cnblogs.com/mzc1997/p/7641995.html

练习

利用闭包返回一个计数器函数,每次调用它返回递增整数:

一开始我怎么都理解不了这里为什么要加上,如果不加就会报错。。这里就不得不学习一下nonlocal和global的知识了。

`global`和`nonlocal`关键字

python引用变量的顺序:

当前作用域局部变量->外层作用域变量->当前模块中的全局变量->python内置变量

首先是第一行定义了全局变量a,但是如果内部函数有引用外部函数的同名变量或者全局变量,并且对这个变量有修改。那么python会认为它是一个局部变量,又因为函数中没有a的定义和赋值,所以报错。

如果不修改变量,则可以直接使用全局变量。

如果需要修改变量,需要声明全局变量(已有全局变量)。

nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量

也就是说,因为count不是全局变量,但是算是外层变量,在内部函数里面想要调用同名变量做出修改的时候,需要实现声明该变量。

参考:https://www.cnblogs.com/z360519549/p/5172020.html

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

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券