关于 global nonlocal 用法
# 1 关于 globals() locals() nolocl 还有内置函数的引用
#
# 概念的解释
# 命名空间
# 1 局部命名空间:每一个函数都有自己的命名空间
# 2 全局命名空间:写在函数外的变量名
# 3 内置命名空间:pythong 解释器启动之后就可以使用的名字
#
# 作用域: 一个名字使用的的区域
# 全局作用域: 内置命名空间和全局命名空间的名字统称全局作用域
# 局部作用域:局部空间的名字属于局部作用域
#
# 局部作用域可以使用全局作用域的变量 ,而全局作用域不能使用局部作用域的变量
# 局部作用域还可以嵌套更小的局部作用域
#
# 作用链 小作用域可以使用大作用域的变量,但是作用链是单向的,不能反向应用
# globals() 保存了全局作用域的名字和值,尽量避免
# ,locals() 中的内容会根据执行位置来决定作用域中的内容 如果在全局执行 和globals() 一样
# nonlocal x 修改最近拥有该变量的外层函数 不影响全局
---------
# 1题
# def func():
# print(1)
# def func():
# print(2)
# func()
# 答案 是 2 原因第一个函数被覆盖
--------
# # 2题 ???? 改变全局第一个是为改变之前的 其它 会改变全局
# n = 1
# def func():
# global n
# n = n +1
# print(n)
# print(n)
# func()
# print(n)
---------
# 4题 nonlocal 引用最近上一层的变量 全局不变 y 改变继承父级爷爷级
# n = 1
# def func1():
# n = 2
# def func2():
# nonlocal n
# n+=1
# print(n)
# func2()
# func1()
# print(n)
# 答案 是 3 , 1 原因第一个函数被覆盖
---------
# 5题 global 改变全局 n是全局的变量 全局为n =2
# n = 1
# def func1():
# n = 2
# def func2():
# global n
# n+=1
# print(n)
# func2()
# func1()
# print(n)
# 答案 2 2
---------
# 6题 带上传参数不能改变全局,能改变局部因为局部有参数变量
# a = 1
# def func(a):
# a+=1
# print(a)
# func(a)
# print(a)
# 答案 2 ,1
---------
# 题目
# n = []
# def func():
# n.append(1)
# print(n)
# print(n)
# func()
# print(n)
# 答案 是 [] ,[1] ,[1] 列表可修改 可变类型 和上传参数不一样
关于 global nonlocal 用法的更多相关文章
- Day 10 动态参数&名称空间,局部全部.函数嵌套&global nonlocal关键字.
一.动态参数#形参 有3种动态参数#*args 动态参数,不定长参数def func (*args): print(args,type(args))func(1,2,"alex", ...
- python函数知识二 动态参数、函数的注释、名称空间、函数的嵌套、global,nonlocal
6.函数的动态参数 *args,**kwargs:能接受动态的位置参数和动态的关键字参数 *args -- tuple *kwargs -- dict 动态参数优先级:位置参数 > 动态位置参数 ...
- python中global的用法——再读python简明教程
今天看了知乎@萧井陌的编程入门指南,想重温一下 <python简明教程>,对global的用法一直不太熟练,在此熟练一下,并实践一下python中list.tuple.set作为参数的区别 ...
- python-函数-动态传参,作用域的问题,函数嵌套,global nonlocal
⼀. 函数参数--动态传参 之前我们说过了传参, 如果我们需要给⼀个函数传参, ⽽参数⼜是不确定的. 或者我给⼀个 函数传很多参数, 我的形参就要写很多, 很⿇烦, 怎么办呢. 我们可以考虑使⽤动态参 ...
- 动态参数 名称空间 作用域 作用域链 加载顺序 函数的嵌套 global nonlocal 等的用法总结
03,动态参数 *args,**kwargs # 用户传入到函数中的实参数量不定时,或者是为了以后拓展,# 此时要用到动态参数*args,**kwargs(万能参数.)# *args接收的是所有的位置 ...
- python中global和nonlocal用法的详细说明
一.global 1.global关键字用来在函数或其他局部作用域中使用全局变量.但是如果不修改全局变量也可以不使用global关键字. gcount = 0 def global_test(): ...
- Python开发【第十二篇】python作用域和global nonlocal
python的作用域 作用域也叫名字空间,是访问变量时查找变量名的范围空间 python中的四个作用域 LEGB 作用域 英文解释 英文缩写 局部作用域 Local(function) L 外部嵌套函 ...
- global & nonlocal
name = "A" def test(): name = "B" def test2(): global name # global 指的是拿到的是全局的变量 ...
- 全局变量&局部变量,global&nonlocal
###全局变量与局部变量 1.函数内部的变量名如果第一次出现,且出现在=前面,即被视为定义一个局部变量,不管全局域中有没有用到该变量名,函数中使用的将是局部变量 2.函数内部的变量名如果第一次出现,且 ...
随机推荐
- PTA L2-001 紧急救援
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805073643683840 输入: 输入第一行给出4个正整数N ...
- 优先队列优化dij算法
之前已经弄过模板了,但那个复杂一点,这个就是裸的dij,用起来更方便 输入格式:n,m,s,d分别是点数,边数,起点,终点 之后m行,输入x,y,z分别是两点即权值 题目链接:https://www. ...
- 廖雪峰网站:学习python基础知识(一)
1. python能做什么? 可以做日常任务,比如自动备份你的MP3:可以做网站,很多著名的网站包括YouTube就是Python写的:可以做网络游戏的后台,很多在线游戏的后台都是Python开发的. ...
- php文件包含漏洞(利用phpinfo)复现
利用docker复现该漏洞,访问http://192.168.80.156:8080/phpinfo.php,可以看到页面出现phpinfo页面 再访问http://192.168.80.156:8 ...
- Wannafly挑战赛22-A/B/C
链接:https://www.nowcoder.com/acm/contest/160/A来源:牛客网 题目描述 有一个计数器,计数器的初始值为0,每次操作你可以把计数器的值加上a1,a2,...,a ...
- UI基础四:简单的assign block
经常会有需求让在标准的order加个assign block,那就来简单说一下: 1.创建assign block组件ZXXXXXX 2.添加BTORDER节点和GUID属性 3.创建表视图(可配置, ...
- HTML 5 <span> 标签
标签定义及使用说明 <span> 用于对文档中的行内元素进行组合. <span> 标签没有固定的格式表现.当对它应用样式时,它才会产生视觉上的变化.如果不对 <span& ...
- 2017-4-20/Redis的数据结构及应用场景
1. 谈谈你对redis的理解,它的应用场景. Redis是一个key-value存储系统,它支持存储的value类型包括string字符串.list链表.set集合.sorted Set有序集合和h ...
- CompareTo 基于的排序算法
CompareTo 基于的排序算法(高级排序) 这个是今天学习MapReduce时发现的,自定义类后实现了WritableComparable<>接口后实现了接口中的compareTo方法 ...
- 在Vue中关闭Eslint 的方法
在vue项目中关闭ESLint方法:找到 webpack.base.conf.js 将这些代码注释掉, { test: /\.(js|vue)$/, loader: 'eslint-loader', ...