函数的嵌套+nonlocal和global关键字(重点)
1.在函数中声明函数
在内部函数中使用变量的时候, 查找顺序: 先找自己 -> 上一层 -> 上一层..全局 -> 内置
# 函数的互相调用
# def func1():
# print("我是神器的func1")
#
# def func2():
# func1()
# print("我是神器的func2")
#
# def func3():
# print("我是神器的func3")
# # func5()
#
# def func4():
# func3()
# print("我是神器的func4")
#
# def func5():
# func2()
# func3()
# print("我是神器的func5")
#
# def func6():
# func5()
# print("我是神器的func6")
# func3()
# func1()
#
# func6()
2.nonlocal和global关键字(重点)
global: 在局部引入全局变量
nonlocal: 在局部...内层函数引入外层离他最近的那个变量.
# def outer():
# def inner():
# print("我的天哪")
# print("还可以这样写???")
# inner()
#
# outer() # inner() # 在全局不能找到局部的内容 # def func1():
# print("1")
# def func2():
# print("2")
# def func3():
# print("3")
# print("4")
# func3()
# print(5)
# print("6")
# func2()
# print("7")
#
# func1() # 全局变量一般是不能随意的修改的
# a = 10
# def func():
# # 慎用.
# global a # global 表示从全局把一个变量引入到局部, 后面使用的a都是全局变量
# a += 10 # ?? a = a + 10 # 现在的a是全局的, 你现在视图改全局变量
# print("里面的打印",a)
# func()
# print("外面的打印", a) # a = 10
# def func():
# def inner():
# # 慎用.
# global a # global 表示从全局把一个变量引入到局部, 后面使用的a都是全局变量
# a += 10 # ?? a = a + 10 # 现在的a是全局的, 你现在视图改全局变量
# print("里面的打印",a)
# inner()
# func()
# print("外面的打印", a) # nonlocal 在局部, 寻找离他最近的外层的一个变量
# a = 50
# def func1():
# # a = 10 # 局部
# def func2():
# nonlocal a # 不找全局, global找全局
# a += 10 # a = a + 10 python不让这么干
# print("func2", a)
# func2()
# print(a)
# func1()
# print(a) # 如果没有nonlocal和global 查找的顺序: 自己, 上一层, 上一层, 上一层 # def func0():
# a = 50
# def func1():
# a = 10 # 局部
# def func2():
# nonlocal a # 不找全局, global找全局
# a += 10 # a = a + 10 python不让这么干
# print("func2", a)
# func2()
# print(a)
# func1()
# print(a)
# func0() # a = 1
# def fun_1():
# a = 2
# def fun_2():
# nonlocal a
# a = 3
# def fun_3():
# a = 4
# print(a)
# print(a)
# fun_3()
# print(a)
# print(a)
# fun_2()
# print(a)
# print(a)
# fun_1()
# print(a) flag = False def login():
global flag
uname = input("用户名:")
upwd = input("密码:")
if uname == "alex" and upwd == "123":
flag = True
else:
flag = False def fatie():
if flag == True:
print("可以发帖")
else:
print("滚去登录") login() fatie()
fatie()
fatie()
fatie()
函数的嵌套+nonlocal和global关键字(重点)的更多相关文章
- python第十三天,函数的嵌套定义,global,nonlocal关键字的使用,闭包及闭包的运算场景,装饰器
今日内容 1. 函数的嵌套定义 2.global,nonlocal关键字 3.闭包及闭包的运用场景 4.装饰器 函数的嵌套定义 1. 概念:在一个函数内部定义另一个函数 2 .为什么要有函数的嵌套定义 ...
- python13 1.函数的嵌套定义 2.global、nonlocal关键字 3.闭包及闭包的运用场景 4.装饰器
## 复习 '''1.函数对象:函数名 => 存放的是函数的内存地址1)函数名 - 找到的是函数的内存地址2)函数名() - 调用函数 => 函数的返回值 eg:fn()() =&g ...
- day13函数的嵌套定义,global、nonlocal关键字,闭包及闭包的运用场景,装饰器
复习 ''' 1.函数对象:函数名 => 存放的是函数的内存地址 1)函数名 - 找到的是函数的内存地址 2)函数名() - 调用函数 => 函数的返回值 eg:fn()() => ...
- python学习Day13 函数的嵌套定义、global、nonlocal关键字、闭包及闭包的运用场景、装饰器
复习 1.函数对象:函数名 => 存放的是函数的内存地址1)函数名 - 找到的是函数的内存地址2)函数名() - 调用函数 => 函数的返回值 eg:fn()() => fn的返回值 ...
- Python nonlocal 与 global 关键字解析
nonlocal 首先,要明确 nonlocal 关键字是定义在闭包里面的.请看以下代码: x = 0 def outer(): x = 1 def inner(): x = 2 print(&quo ...
- day13(函数嵌套定义,global,nonlocal关键字,闭包,装饰器)
一,复习 ''' 1.函数对象:函数名 => 存放的是函数的内存地址 1)函数名 - 找到的是函数的内存地址 2)函数名() - 调用函数 => 函数的返回值 eg:fn()() => ...
- Python--day13(函数嵌套定义,global、nonlocal、闭包函数、装饰器)
今日主要内容 1. 函数的嵌套定义 2. global.nonlocal关键字 3. 闭包及闭包的应用场景 4. 装饰器 1. 函数的嵌套定义 概念:在一个函数的内部定义另一个函数 为什么要有 ...
- nonlocal和global
获取变量时遵循LEGB原则,修改变量时需要global/nonlocal进行修改 global # global的使用 函数外定义了全局变量: global关键字在函数内会修改全局变量 函数外没定义全 ...
- 全局变量和局部变量(global关键字)
1.定义在函数外部的就是全局变量,它的作用域从定义处一直到文件结尾. 2.函数内定义的变量就是局部变量,它的作用域为函数定义范围内. 3.函数之间存在作用域互不影响. 4.函数内访问全局变量需要 gl ...
随机推荐
- centos7下yum安装mariadb
1.安装MariaDB 删除已安装的mysqlyum remove mysql mysql-server mysql-libs mysql-devel删除存放数据的目录rm -rf /var/lib/ ...
- 修改 spawn node.exe" ENOENT at notFoundError问题
Ionic server启动后,出现spawn node.exe" ENOENT at notFoundError ...\node_modules\cross-spawn\lib\enoe ...
- MapReduce实现与自定义词典文件基于hanLP的中文分词详解
前言: 文本分类任务的第1步,就是对语料进行分词.在单机模式下,可以选择python jieba分词,使用起来较方便.但是如果希望在Hadoop集群上通过mapreduce程序来进行分词,则hanLP ...
- 关于STM32 ADC自校准的个人理解
前几天发过一篇帖子,叫:关于STM32 ADC自校准的个人理解文章大体说的是自校准前要先将ADON位置1,之后再校准. 本以为彻底的了解了自校准的过程,但是昨天晚上无意间看到了一个函数说明,不禁愁云又 ...
- 阅读OReilly.Web.Scraping.with.Python.2015.6笔记---BeautifulSoup---findAll
阅读OReilly.Web.Scraping.with.Python.2015.6笔记---BeautifulSoup---findAll 1..BeautifulSoup库的使用 Beautiful ...
- yii 生成条码并上传到图片服务器(zimg)
工具: 生成条码和二维码 https://github.com/codeitnowin/barcode-generator 配置:
- web前端性能调优(一)
最近2个月一直在做手机端和电视端开发,开发的过程遇到过各种坑.弄到快元旦了,终于把上线了.2个月干下来满满的的辛苦,没有那么忙了自己准备把前端的性能调优总结以下,以方便以后自己再次使用到的时候得于得心 ...
- Linux系统构成和基本操作
Linux的优势 Linux的目录结构 Linux目录与文件管理 列出目录内容 创建新目录(文件夹) 创建文件 复制文件或目录 删除文件或目录 移动目录或文件 查看文件属性 文件属性含义 读权限-4 ...
- JAVA常量与变量
顺着箭头的转换为自动转换逆这箭头的转换为强制转换. 常量 关键字FINAL 命名为大写 标识符 1要以字母数字下划线和¥组成 2首字母不能为数字 3不能是JAVA的关键字和 保留字 4数据类型分为基本 ...
- MSSQL 2012 密钥
MICROSOFT SQL SERVER 2012 企业核心版激活码序列号: FH666-Y346V-7XFQ3-V69JM-RHW28 MICROSOFT SQL SERVER 2012 商业智能版 ...