Python函数学习-创新互联

一.作用域 1.局部作用域

如果一个变量定义的位置在一个函数里面,那其是局部作用域
请添加图片描述

创新互联服务项目包括金平网站建设、金平网站制作、金平网页制作以及金平网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,金平网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到金平省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!2.全局作用域

1.任何函数的外部去定义一个变量,其作用域为全局的
2.函数中,局部变量会覆盖全局变量
请添加图片描述
PS:两个x同名,不同样,因为不同的作用域
可用id函数查身份
请添加图片描述

二.global语句

可以进行修改全局变量在函数中
请添加图片描述
(但并不推荐,容易出现bug)

三.嵌套函数

函数中嵌套函数
请添加图片描述
第一种无法提出funB,第二种通过函数内部提出funB

四.nonlocal语句

在内部函数去修改外部函数的变量
请添加图片描述

五.LEGB规则

L是Local局部作用域
E是Enclosed嵌套函数的外层函数作用域
G是Global是全局作用域
B是Build-In内置作用域
(从上到下优先性降低)
请添加图片描述

六.闭包

1.对于嵌套函数来说,外层函数的作用域会通过某种形式保留下来,并不会像局部作用域一样用完就消失
请添加图片描述
2.工厂函数(来料加工,批量生产)
请添加图片描述
PS:都是将其带入内置函数的值中,而move中的第二个,其前面x,y的值已经被第一次move改变,并非还是原来的0,0
(一个带记忆功能的函数)

七.装饰器

1.把一个函数作为参数传递给另一个函数
请添加图片描述
2.传入函数的运行时间
请添加图片描述
3.同上,函数中套函数请添加图片描述
4.装饰器是将下面的作为一个参数,弄进装饰器中(在不修改原来代码的情况下,实现这些功能)
请添加图片描述
5.多种装饰器用在同一个函数上
请添加图片描述
PS:这个时候先执行后面的装饰器
6.如何给装饰器传递参数
请添加图片描述
请添加图片描述

八.lambda表达式(匿名函数)

(一行流代码)(可以放在列表中)
(通常只能使用在简单的函数中)
请添加图片描述

九.生成器

1.每调用一次,提供一个数据,并记住当时的状态(特殊迭代器)
请添加图片描述
(无法使用下标索引)
请添加图片描述
2.生成器表达式
请添加图片描述
和列表推导式的不同在于一个一次只一个,一个是一次全部

十.递归

1.函数调用函数或者调用函数本身(可能会失控)
请添加图片描述
2.通过判断语句,将递归在失控下拉回
请添加图片描述
(必须有结束条件)
3.递归和迭代的区别
请添加图片描述
4.斐波那契数列
请添加图片描述
5.递归具有效率问题(过程相当耗费资源)

十一.汉诺塔

1.递归的应用
将n层从最右挪到最左

十二.函数文档,类型注释,内省 1.函数文档(函数的说明书)

请添加图片描述
请添加图片描述
可用help查看编写的函数文档内容

2.类型注释

请添加图片描述
str是给人看的,所以times(5,5)是可以的
可用s:str=“FishC”进行默认参数
也可用列表list,字典dict
请添加图片描述

3.内省

1.程序与运行的时候能够进行自我检测的机制(也可叫自省)
name函数的名字
annotation查看函数的类型注释
doc查看函数文档
请添加图片描述

十三.高阶函数

1.当一个函数接收另一个函数为参数时,其被称为高阶函数
2.functools
reduce函数
第一个参数指定一个函数(必须指定两个参数)
第二个参数时可迭代对象(将元素依次传递第一个参数指定的函数中,最红返回累积结果)
(可用lambda函数)
请添加图片描述
3.偏函数
对指定函数二次包装,将现有函数部分参数进行预先绑定,从而得到新函数(偏函数)
请添加图片描述
4.@wraps装饰器
在真正要调用的函数的顶上描写,将真正函数作为参数
原来的是
请添加图片描述
采用@wraps装饰器后
请添加图片描述
请添加图片描述

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


当前名称:Python函数学习-创新互联
网站网址:http://azwzsj.com/article/ceshpj.html