python之路--day10-闭包函数
1.命名关键字参数
格式:在*后面的参数都是命名关键字参数
特点:
1.必须被传值
2.约束函数的调用者必须按照key=value的形式传值
3.约束函数的调用者必须用我们指定的key名
1 def auth(*args,**kwargs): 2 """ 3 使用方式auth(name="egon",pwd="123") 4 :param args: 5 :param kwargs: 6 :return: 7 """ 8 # print(args,kwargs) 9 if len(args) !=0: 10 print('必须用关键字的形式传参') 11 return 12 if 'name' not in kwargs: 13 print('必须用指定的key名name') 14 return 15 if 'pwd' not in kwargs: 16 print('必须用指定的key名pwd') 17 return 18 19 name=kwargs['name'] 20 pwd=kwargs['pwd'] 21 print(name,pwd)
2.函数嵌套
1.函数的嵌套调用:在函数内又调用了其他函数
def max(x,y):if x>y:reryrn xelse:return y def max3(x,y,z):res1 = max2(x,y)res2 = max2(rea1,z)return res2 print(max3(11,199,2))
2,函数的嵌套定义:在函数内又定义了其他函数
def func1():print('from func1')def func2(): #func2=内存地址print('from func2')func1()
def f1():print('f1')def f2():print('f2')def f3():print('f3')f3()f2() f1()''' f1 f2 f3 '''
3.名称空间和作用域
1.名称空间:存放名字和值绑定关系的地方
1.2.名称空间分类:
1.2.1内置名称空间:存放python解释器自带的名字,在解释器启动时就生效,解释器关闭则失效
1.2.2全局名称空间:文件级别的名字,在执行文件的时候生效,在文件结束或者在文件删除的时候失效
1.2.3局部名称空间:存放函数内定义的名字(函数的参数以及函数内名字都存放在局部变量空间)---在函数调用时临时生效,函数结束则失效
加载顺序:内置名称空间-----全局名称空间---局部名称空间
查找名字:局部名称空间-----全局名称空间-----内置名称空间
2:作用域
1.全局变量域:包含的是内置名称空间与全局名称空间的名字
特点:
在任何位置都能访问到
该范围内的名字会伴随程序整个生命周期
2.局部作用域:包含的是局部名称空间的名字
特点:
只能在函数内使用
调用函数是生效,调用结束失效
4,函数对象
1,函数可以被引用
def bar():print('from bar')f =bar f()
2,可以当作参数传入
def bar():print(’from bar‘)def wrapper(func):func() wrapper(bar)
3,可以当作函数的返回值
def bar():print(’from bar‘) def foo(func):return funcf = foo(bar) f()
4,可以当作容器类型的元素
def get():print('from get')def put():print('from put')l=[get,put]print(l)l[0]()
def auth():print('登陆。。。。。')def reigster():print('注册。。。。。')def search():print('查看。。。。')def transfer():print('转账。。。。')def pay():print('支付。。。。')dic={'1':auth,'2':reigster,'3':search,'4':transfer,'5':pay }def interactive():while True:print("""1 认证2 注册3 查看4 转账5 支付""")choice=input('>>: ').strip()if choice in dic:dic[choice]()else:print('非法操作')interactive()
5,闭包函数
定义在函数内部的函数,并且该函数包含对外部函数作用域中名字的引用,该函数就成为闭包函数
def outter():name='egon'def inner():print('my name is %s' %name)return inner inner()被称为闭包函数。inner()定义在函数outter外部,outter函数的作用域内部变量name,在inner内被引用
转载于:https://www.cnblogs.com/guodengjian/p/8665479.html
python之路--day10-闭包函数相关推荐
- python之路---装饰器函数
阅读目录 楔子 装饰器的形成过程 开放封闭原则 谈装饰器主要功能和装饰器固定结构 带参数的装饰器 多个装饰器装饰一个函数 返回顶部 楔子 作为一个会写函数的python开发,我们从今天开始要去公司上班 ...
- python装饰器函数-python之路——装饰器函数
阅读目录 楔子 作为一个会写函数的python开发,我们从今天开始要去公司上班了.写了一个函数,就交给其他开发用了. deffunc1():print('in func1') 季度末,公司的领导要给大 ...
- python之路——内置函数和匿名函数
楔子 在讲新知识之前,我们先来复习复习函数的基础知识. 问:函数怎么调用? 函数名() 如果你们这么说...那你们就对了!好了记住这个事儿别给忘记了,咱们继续谈下一话题... 来你们在自己的环境里打印 ...
- 初学python之路-day10
基础部分先告一段落,今天开始学习函数. 一.函数:完成 特定 功能的代码块,作为一个整体,对其进行特定的命名,该名字就代表函数 -- 现实中:很多问题要通过一些工具进行处理 => ...
- Python之路----------内置函数
1.abs(x)绝对值 1 #coding=utf-8 2 a = 1 3 b = -2 4 print(abs(a)) 5 print(abs(b)) 2.all(iterable)可迭代对象里面所 ...
- python之路---09 初始函数 参数
二十七.初始函数 1.函数: 对代码块和功能的封装和定义 2.格式及语法 def 函数名() # 定义 函数体 函数名() # 调用 3. r ...
- python之路--内置函数03
一 . 正则表达式 匹配字符串 元字符. 除了换行\w 数字, 字母, 下划线\d 数字\s 空白符\n\t\b 单词的边界\W 非xxx\D\S[ ] 字符组 or的关系[^xxx] 非xxxx^ ...
- python之路day10-命名空间和作用域、函数嵌套,作用域链、闭包
楔子 假如有一个函数,实现返回两个数中的较大值: def my_max(x,y):m = x if x>y else yreturn mbigger = my_max(10,20)print(b ...
- python命名空间和闭包_Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】...
本文实例讲述了Python函数基础用法.分享给大家供大家参考,具体如下: 一.什么是命名关键字参数? 格式: 在*后面参数都是命名关键字参数. 特点: 1.约束函数的调用者必须按照Kye=value的 ...
最新文章
- python123平台作业答案第十一周_第十一周作业
- python 学习笔记十九 django深入学习四 cookie,session
- iOS-NSData与NSDictionary的互相转换
- Hystrix解决雪崩问题的两种手段
- 绝地求生5月22日服务器维护,绝地求生5月22日更新了什么内容 吃鸡5月22日维护公告...
- docker项目部署 php_「Docker部署PHP+Vue项目」- 海风纷飞Blog
- 程序员工作3年只涨2千,你不知道程序员有多难!
- java 单例 性能_java程序性能优化之设计优化---单例pk
- HTML 颜色值及脚本
- 使用Visual Studio 部署SharePoint时提示“路径中具有非法字符”
- flask-文件上传/下载
- C++中,类如果包含map/list等对象,慎用memset(0)
- MFC 用Gdiplus画曲线和直线
- Cobar介绍及配置
- rtx2060为什么叫智商卡_显卡怎么选,GTX1660TI亦是RTX2060?
- redis:CLUSTER cluster is down 解决方法
- 《炬丰科技-半导体工艺》SC-1颗粒去除和piranha后漂洗的机理研究
- Conflux TokenGazer AMA活动内容回顾
- 程序“媛”公号,越来越少了,这次推荐俩,轻拍!
- 滑头杨百万的股经:六分心态三分技巧一分运气
热门文章
- OpenCart如何添加货币
- android 多线程编程
- python使用ssh 中文_使用Python进行SSH的最简单方法是什么?
- 无人驾驶插秧机智能辅助系统_无人驾驶插秧机搭载北斗导航驾驶系统,误差仅在2.5厘米内...
- python转置列表代码_转置字典(从字典列表中提取一个键的所有值)
- 2020-08-21 Qt+MSVC 强制中文UTF-8编码
- 2018计算机二级c知识,2018全国计算机二级考试C语言常考知识点归纳
- 不使用ArcObjects直接查找SDE数据库信息
- GitHub上最火的40个iOS开源项目(一)
- Phonegap VS AppCan