nonlocal(非局部变量)---python 3.x 新增关健词

Python里只有2种作用域:全局作用域和局部作用域。全局作用域是指当前代码所在模块的作用域,局部作用域是指当前函数或方法所在的作用域。其实准确来说,Python 3.x引入了nonlocal关键字,可以用于标识外部作用域的变量。

局部作用域里的代码可以读取外部作用域(包括全局作用域)里的变量,但不能更改它。一旦进行更改,就会将其当成是局部变量。而如果在更改前又进行了读取操作,则会抛出异常。

为了解决这个问题,Python 3.x引入了nonlocal关键字(详见The nonlocal statement)。
只要在闭包内用nonlocal声明变量,就可以让解释器在外层函数中查找变量名了,也就可以改变外部作用域的变量了。

例:
def func_outer():
     x=2
     print (x)
     def func_inner():
          nonlocal x
          x=x+1
          print(x)
     func_inner()
     print("change x ",x)

func_outer()

nonlocal(非局部变量)---python 3.x 新增关健词,布布扣,bubuko.com

时间: 2024-12-29 11:32:14

nonlocal(非局部变量)---python 3.x 新增关健词的相关文章

Python进阶之[非局部变量,闭包,装饰器]

阅读Tacotron2源码 之 Python进阶 Non-Local Variable with Nested Function Closure in Python Decorator 1. Non-Local Variable with Nested Function ????在Python中,除了全局变量(Global Variable)和局部变量(Local Variable)之外,还有一种变量叫Non-Local Variable. ????Non-Local Variable的存在来源

【python爬虫】根据查询词爬取网站返回结果

最近在做语义方面的问题,需要反义词.就在网上找反义词大全之类的,但是大多不全,没有我想要的.然后就找相关的网站,发现了http://fanyici.xpcha.com/5f7x868lizu.html,还行能把"老师"-"学生","医生"-"病人"这样对立关系的反义词查出来. 一开始我想把网站中数据库中存在的所有的词语都爬出来(暗网爬虫),但是分析了url的特点: http://fanyici.xpcha.com/5f7x86

【python gensim使用】word2vec词向量处理中文语料

word2vec介绍 word2vec官网:https://code.google.com/p/word2vec/ word2vec是google的一个开源工具,能够根据输入的词的集合计算出词与词之间的距离. 它将term转换成向量形式,可以把对文本内容的处理简化为向量空间中的向量运算,计算出向量空间上的相似度,来表示文本语义上的相似度. word2vec计算的是余弦值,距离范围为0-1之间,值越大代表两个词关联度越高. 词向量:用Distributed Representation表示词,通常

Python - python3.7新增的contextvars vs Thread local(threading.local)

总结 和threading.local()类似.Python3.7新增. thread.local(): 不同线程,同一个变量保存不同的值. contextvars: 不同上下文,同一个变量保存不同的值.例如:同一线程,不同的协程或者异步并发的任务(例如asyncio)的情况下同一个变量有不同的值. 参考 https://realpython.com/python37-new-features/#context-variables https://www.dongwm.com/post/137/

[高清·非影印] Python机器学习经典实例(电子书+源码)

------ 郑重声明 --------- 资源来自网络,纯粹共享交流, 如果喜欢,请您务必支持正版!! --------------------------------------------- 下载列表: >>> 下载地址1 —— 作者赚取近似忽略不计的广告费 >>> 下载地址2 —— 作者公众号[暂时]粉丝+1 公众号[风色年代(itfantasy)]发送消息[6504],就看到下载密码啦! 原文地址:https://www.cnblogs.com/itfanta

python爬行动物集合360联想词搜索

想法和一些代码引用邸一幕python培训黄哥python爬虫联想词视频,但是太罗嗦.顺便整理,而到现在为止,360不傻.它已演变,用原来的方式,有些bug,这接着说. 正题例如以下: 语言:python2.7.6 模块:urllib,urllib2,re,time 目标:输入随意词,抓到其联想词 版本号:w1 原理:在360搜索主页:http://www.so.com/.当你输入"科技"时,搜索框会列出对应的联想词或者短语.我们就是要得到这些联想词,那就要爬360的搜索引擎了.在输入关

【python gensim使用】word2vec词向量处理英文语料

word2vec介绍 word2vec官网:https://code.google.com/p/word2vec/ word2vec是google的一个开源工具,能够根据输入的词的集合计算出词与词之间的距离. 它将term转换成向量形式,可以把对文本内容的处理简化为向量空间中的向量运算,计算出向量空间上的相似度,来表示文本语义上的相似度. word2vec计算的是余弦值,距离范围为0-1之间,值越大代表两个词关联度越高. 词向量:用Distributed Representation表示词,通常

【Python成长之路】词云图制作

[写在前面] 以前看到过一些大神制作的词云图 ,觉得效果很有意思.如果有朋友不了解词云图的效果,可以看下面的几张图(图片都是网上找到的): 网上找了找相关的软件,有些软件制作 还要付费.结果前几天在大神的公众号里的文章中看到了python也能实现,而且效果也很不错 .那还等什么,不赶紧盘它? [示例代码] 1 # coding=utf-8 2 # @Auther : "鹏哥贼优秀" 3 # @Date : 2019/7/31 4 # @Software : PyCharm 5 impo

初探swift语言的学习笔记七(swift 的关健词)

每一种语言都有相应的关键词,每个关键词都有他独特的作用,来看看swfit中的关键词: 关键词: 用来声明的: “ class, deinit, enum, extension, func, import, init, let, protocol, static, struct, subscript, typealias, var.” 用于子句的: “ break, case, continue, default, do, else, fallthrough, if, in, for, retur