游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

抬抬小手学PythonPython之作用域下的global和

  global和nonlocal作用域
  该部分内容涉及Python变量作用域相关知识,变量作用域指的是变量的有效作用范围,直接理解就是Python中的变量不是任意位置都可以访问的,有限制条件。
  一般情况下变量的作用域变化范围是块级、函数、类、模块、包等,级别是从小到达。Python中是没有块级作用域的,所以我们在写代码的时候,下面的代码是正确的。ifTrue:xhelloworld因为没有块级作用域,故if代码块中的变量x可以被外部访问到print(x)
  在Python中常见的块级作用域有if语句、for语句、while语句、with上下文语句。Python中的作用域
  上文已经提及了作用域是Python程序可以直接访问一个变量的作用范围,Python的作用域一共有4种,分别如下:L(Local):最内层,包含局部变量,例如函数(方法)内部;E(Enclosing):包含非局部(nonlocal)也非全局(nonglobal)的变量,在嵌套函数中,函数A包含函数B,在B中去访问A中的变量,作用域就是nonlocal,直白理解就是闭包函数外的函数中的变量;G(Global):代码最外层,全局变量;B(Builtin):包含内建变量。
  一个比较经典的案例如下:内建作用域Builtinxint(52)全局作用域Globalglobalvar0defouter():闭包函数外的函数中Enclosingoutvar1definner():局部作用域Localinnervar2
  在Python中变量寻找的顺序是从内到外,先局部,然后外部,在全局,在内建,这种规则叫做LEGB规则。
  增加以下学习的趣味性,你可以研究下述代码中变量是如何变化的。lenlen(〔〕)defa():len1defb():len2print(len)b()a()global关键字
  定义在函数内部的变量拥有一个局部作用域,定义在函数外部的变量拥有全局作用域。
  局部变量只能在其被声明的函数内部访问,而全局变量可以在整个程序范围内访问。全局变量x0defdemo():此时的x是局部变量x123print(函数内是局部变量x,x)demo()print(函数外是全局变量x,x)
  输出结果,函数内部是123,函数外部依旧是0。
  如果希望函数内部(内部作用域)可以修改外部作用域的变量,需要使用global关键字。全局变量x0defdemo():此时的x是全局变量globalxx123print(函数内是局部变量x,x)demo()print(函数外是全局变量x,x)
  此时输出的就都是123了,还有一点需要注意,在函数内容如果希望修改全局变量的值,global关键字一定要写在变量操作前。defdemo():此时的x是全局变量x123globalxprint(函数内是局部变量x,x)
  该代码会出现语法错误:SyntaxError:namexisassignedtobeforeglobaldeclaration
  除了以上知识外,要记住在函数内部使用一个变量,不修改值的前提下,没有声明,默认获取的是全局变量的值。x全局变量defdemo():print(x)demo()
  全局变量还存在一个面试真题,经常出现,请问下述代码运行结果。x10defdemo():x1print(x)demo()
  结论是报错,原因就是demo函数运行时,会先计算x1,对变量进行计算之前需要进行声明与赋值,但是函数内部对x没有初始化操作,故报错。nonlocal关键字
  如果要修改嵌套作用域(Enclosing作用域)中的变量,需要nonlocal关键字,测试代码如下:defouter():num10definner():nonlocal关键字nonlocalnumnum100print(num)inner()print(num)outer()
  输出结果自行测试,注意nonlocal关键字必须是Python3。X版本,Python2。X版本会出现语法错误:nonlocalnumSyntaxError:invalidsyntax
  nonlocal不能代替global,例如下述代码,注释掉外层函数的变量声明,此时会出现SyntaxError:nobindingfornonlocalnumfound错误。num10defouter():注释掉本行num10definner():nonlocal关键字nonlocalnumnum100print(num)inner()print(num)outer()
  在多重嵌套中,nonlocal只会上溯一层,如果上一层没有,则会继续上溯,下述代码你可以分别注释查看结果。num10defouter():num100definner():num1000definner1():nonlocalnumnum10000print(num)inner1()print(num)inner()print(num)outer()
  局部变量和全局变量具体有哪些,可以通过locals()和globals()两个内置函数获取。x全局变量defdemo():y局部变量print(locals())print(x)demo()print(globals())print(locals())这篇博客的总结
  本篇博客为大家说明了Python的作用域,并且对global和nonlocal关键字进行了学习,希望对你有所帮助。

浅谈人民币数字化大家知道什么是数字货币么?很多文章都说了,数字化人民币是我国的一盘大棋,我国推出的数字化人民币可以怎么来推倒美元霸主的地位。在大局上,我国需要推出数字货币来推倒美元霸主的地位么……iOS12。2正式版耗电测试说耗电快的速来一战!近日国外的一位小哥哥iAppleBytes对iOS12。2和iOS12。1。4两个版本做了一组耗电对比实验,使用的机型包括有iPhone5s、iPhone6、iPhone6s、……工信部在智能手机穿戴设备等产品中拓展北斗新应用来源:中国新闻网中新财经1月29日电日前,工业和信息化部发布《关于大众消费领域北斗推广应用的若干意见》,提出要在大众消费产品中推广北斗应用。工信部称,大众消费领域产品丰富……北京市自动驾驶车辆道路测试报告(2021年)在京发布来源:人民网人民网北京1月28日电(记者栗翘楚)近年来,汽车行业电动化、智能化、网联化、共享化趋势正不断演进,随着科技企业不断入局新能源造领域,自动驾驶商业化正在加速推进……微信怎样屏蔽别人而又不能让别人知道?对于很多人来说,微信朋友圈是一个十分私人的空间,但是很多情况下又不可避免的要添加一些工作上的同事或者朋友,那么如何屏蔽他们又不让他们知道呢?这个时候你就需要了解微信的屏蔽机智才……摄影,在微单和单反中怎么选?微单小气,单反大气,能不能给个不各有优缺点,你想买称心如意的,就买最喜欢的。如果心里没底,请去修理店看看什么相机多,再去做选择。理由有哦:有钱就买微单,比如佳能R5,26000块,很厉害的。没有钱,就买……5G时代背景下,创业小白可以选择邦妮星选这个互联网项目吗?【邦妮星选】是5G时代下不可错失的互联网创业项目!【邦妮星选】绝对是5G时代下不可错失的互联网高利润项目!照身边的代理朋友跟我反馈,他们平台会提供一站式服务,具有超……39元移动WIFI闪现。4G用户全网不限量!还是你最懂用户的如今,全行业加快5G网络建设,内容应用逐渐丰富,产业生态也不断完善。5G发展取得了积极成效。5G也成为人们生活中的一大热点。然而,人们并没有因此而高兴起来。一方面,5G资……晚点独家丨王诗沐任腾讯新闻负责人,又一位空降高管加入腾讯以十几年经验的产品负责人接替资深新闻人。文高洪浩编辑黄俊杰《晚点LatePost》独家获悉,原网易云音乐副总裁、网易美学负责人王诗沐已加入腾讯新闻成为第一负责……买手机只需看这几点,你就能轻松选择出好手机在生活中,很多的朋友在购买手机的时候,都是盲目的跟风,或者去专卖店的话,听着销售讲解一下就购买了,对我来说,一台手机的好坏自己会看配置,要比别人推荐要好得多。买手机必看这……iPad9真正诠释了什么是苹果的高性价比,2499元起,你值笔歌科技独家报道:苹果发布全新一代的平板电脑iPad9,2499元起的售价,性价比非常的高,iPad9搭载10。2英寸视网膜显示屏,内置A13仿生芯片亮相,一起来围观。0……iPhone13系列发布后赵明等友商高管纷纷发表评价【手机中国新闻】手机圈中各大手机厂商之间均是友商的关系。一般来说,为了避嫌,不管某家手机厂商发布的新品是惊为天人还是弱到爆,其他手机厂商的高管都会不做评论或极少评论。但一年一度……
初见i911900KB性能小钢炮英特尔猛兽峡谷NUC深度体验英特尔NUC,一个有些小众而又独特的产品线。它的魅力在于,如果你真的使用它作为桌面办公的首选设备,那么就很难再找到比它更合适的替代品。出色的扩展性、丰富的可玩性、足够支持办公应……小米是如何把对手逼死,把自己逼疯的小米内部做产品的一个态度,雷军做产品最重要的一个核心:极致。但雷军在小米却很少说极致这个词,说的是变态。今天我们就来分享一下变态的极致。一、什么是变态的极致?就是性能大幅……哪位大神分享下旧照片修复经验?修复老旧照片主要有几点?一:第一步把老旧照片纸质改为电子档。这是最简单最直接的。所以你需要把照片扫描到电脑。二,然后再视破旧根据实际情况判定能否修复的可行性。……卖牛肉的郭宏才,玩比特币的宝二爷在币圈,他就是江湖。郭宏才,币圈人称宝二爷,他却常常自称卖牛肉的。2018年3月,他在硅谷购置了一套百亩大的豪宅。4月23日这一天,他将印有韭菜庄园的牌子正式挂在了……iPhone13将支持LEO连接可在无信号覆盖的情况下实现通据可靠的分析师郭明錤称,iPhone13将具有低地球轨道(LEO)卫星通信连接功能,允许用户在没有4G或5G覆盖的地区打电话和发信息。在一份给投资者的说明中,郭明錤解释说,iP……美国批准向华为出售汽车零部件芯片?华为回应正在核实确认据环球网援引路透社25日消息,两名知情人士透露,美国已经批准了供应商数亿美元的许可证申请,允许其向华为出售用于汽车零部件的芯片。报道称,在近几周和近几个月,熟悉流程的人士……400块搞定苹果全家桶!无线充电板还带磁吸,要啥Airpow作者元亦来源极果编辑部众所周知,苹果产品的续航问题一直被诟病,手机则是被吐槽得最严重。虽然近年来在充电技术上不断升级,从iPhone8的QI无线充电到iPho……人工智能威胁人类?1995年,我刚开始创业的时候,全世界的互联网用户可能还不到5万人,全世界的互联网从业者也不到5万人。但是今天,到云栖大会参加会议的人数已经接近5万,全世界使用互联网的人数已经……python函数的调用11:简单的函数演示:这个enumerate函数挺有意思,用一次就爱不释手,可以自己去敲敲代码感受一下。books〔红楼梦,水浒传,三国演义,西游记〕defshowb……互联网创业,抄袭已成常态昨天有一个朋友找到我发了一个公众号给我,举报说抄袭他自己。通常我都会直接回答司空见惯这四个字。并不是说我们没有没有渠道去压制这种现象,只是我觉得完全没有必要。……一号双终端业务,安徽地区来了,开通eSIM后,跑步不用再带上安徽移动支持开通一号双终端业务了。根据中国移动一号双终端官网显示,最新增加支持安徽地区开放一号双终端业务办理。安徽移动的用户,现在可以尝试为自己的智能手表开通eSIM功能……生活中常见的兼职一、任务跑腿类这种跑腿类还是比较多的,主要是各种送外卖、代拿快递、代买物品之类的跑腿任务。美团众包UU跑男达达骑士,这个前期有五单免费的顺丰同城骑士5地推拉新类,也……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网