Python 之nonlocal 关键字
nonlocal 关键字 作用:用来修改局部变量
nonlocal 修改局部变量时,采用LEGB原则
跳出当前函数这一层空间,到上一层寻找
如果上一层不存在该变量,继续向上一层寻找
如果最顶级也找不到了,直接报错
当前函数空间如果找不到,跳出这一层,到上一层寻找 [nonlocal 修改局部变量]
def outer():a = 1def inner():nonlocal a # 用来修改当前空间上一层的局部变量a = 2print(a)inner()print(a) outer()# 21 # 12 # 11 # 22
如果上一层不存在该变量,继续向上一层寻找
a = 300 def outer():a = 200def inner():a = 100def smaller():nonlocal aa = 400smaller()print(a)inner()print(a) outer() print(a) # 400 200 300 升级 a = 300 def outer():a = 200def inner():def smaller():nonlocal aa = 400smaller()print(a)inner()print(a) outer() print(a) # 400 400 300
如果最顶级也找不到了,直接报错
a = 200 # 全局变量,nonlocal无法更改全局变量,只能该局部变量,global关键字更改全局变量 def outer():def inner():def smaller():nonlocal aa = 400smaller()print(a)inner()print(a) outer() # error 报错
不依赖局部nonlocal ,如何改变局部变量呢? 通过列表~
def outer():lst = [1,2,3] # 定义一个列表def inner():lst[-1] = 100 inner()print(lst) outer()
Python 之nonlocal 关键字相关推荐
- python local global_python global与nonlocal关键字
函数作用域 a = 1 print("函数outer调用之前全局变量a的内存地址: ", a , id(a)) def outer(): a = 2 print("函数o ...
- python global和nonlocal_3.关于作用域知识的额外补充global和nonlocal关键字
本遍文章对global关键字和nonlocal关键字进行补充,这两个关键字在以后做python开发的时候,能不用尽量别用!最好别用!总会出现让你意想不到的后果... 1.先说第一种global,不管在 ...
- 【Python成长之路】python 基础篇 -- global/nonlocal关键字使用
课程起源 有一次在工作中编写python工具时,遇到一个 问题:从配置文件读取变量A后,无法在内存中把A的值改变成新的内容.为了解决"更新内存中变量"的这个问题,查找了一些帖子,结 ...
- python闭包技巧_案例详析:Python闭包与nonlocal关键字
在廖雪峰的官网上看到一个很有意思题目.关于闭包的,有兴趣的朋友可以看一下, 做一下这个题目,当然需要一点闭包的知识. 下面我简述一下: 利用闭包返回一个计数器函数,每次调用它返回递增整数. # 修改下 ...
- 滚雪球学 Python 之作用域下的 global 和 nonlocal 关键字
橡皮擦,一个逗趣的互联网高级网虫,新的系列,让我们一起 Be More Pythonic. 滚雪球学 Python 第二轮 已完成的文章清单 十.global 和 nonlocal 作用域 10.1 ...
- python中nonlocal是什么意思_Python中nonlocal关键字
在这篇文章中介绍了"Python的闭包与nonlocal"的用法,因为nonlocal是在Python3.0中新增的关键字,python2.x不提供支持,文中提出在Python2. ...
- python 函数嵌套和nonlocal关键字
python函数可以嵌套使用,使用也比较简单,举个栗子: def outer():print("outer")def inner():print("inner" ...
- python local_Python3中 对local和nonlocal 关键字的改善认识(新手向)
nonlocal关键字用来在函数或其他作用域中使用外层(非全局)变量. nonlocal用于声明,修改嵌套作用域(enclosing 作用域,外层非全局作用域)中的变量,如下实例: #!/usr/bi ...
- python nonlocal的用法_python中的global和nonlocal关键字怎么使用
global 和 nonlocal关键字 当内部作用域想修改外部作用域的变量时,就要用到global和nonlocal关键字了. 以下实例修改全局变量 num: #!/usr/bin/python3 ...
最新文章
- IIS 承载的WCF服务失败
- Android动态加载技术三个关键问题详解
- Go语言集合(Map)
- java基础----IO序列化Serializable
- 【bzoj5107】[CodePlus2017]找爸爸 dp
- JSP中 input type 用法
- dw个人介绍网页制作_DW网页制作,傻瓜级教学来了!
- SPSS 的安装与概貌-第一章
- 用 Python 自动生成快闪文字视频
- FireEye 网络攻击危害红队安全工具
- Git-LFS:大文件也有了版本管理
- 【大模型迁移 2022】Exploring Visual Prompts for Adapting Large-Scale Models
- 手机wifi java_Android中使用WIFI来连接ADB
- 最简单的飞机大战小游戏(C语言实现)
- 到站提醒APP应用 隐私声明
- CSDN20181219博客黑板报
- 深度学习,分割后处理之通过连通成分分析去除假阳性区域,提高分割准确度
- 交互设计:依据用户体验要素知识点,进行APP的分析和改良设计。
- MySQL登录、访问、退出操作
- 《Photoshop修色圣典——PPW专业照片修正流程与技巧》—第1章PPW流程