第四周学习笔记

装饰器:本质是函数(装饰其他函数)

就是为了其他函数添加附加功能。

原则:1.不能修改被装饰函数源代码。

           2.不能修改被装饰函数调用方式。

实现装饰器的知识储备:

1.函数即变量

2.高阶函数 :   a:把一个函数名当做实参传给另外一个函数(不修改源代码添加功能)

                         b:返回值中包含函数名(不修改调用方式)

3.嵌套函数

高阶函数+嵌套函数=>装饰器

匿名函数:lambda 无函数名。

当函数需要传参数时应该给装饰器中也传个参数,因为不知道具体数量或者形参的名字,所以使用不限制变量。

终极装饰器高潮版本:运用三层函数来完成两种不同的方法。

生成器:列表在存取元素时会将所有元素都会开辟一块内存空间并且存入,但是内存空间的大小有限,因此生成器应运而生。生成器是指在调用时才会生成一个相应的数据。

生成器只存在调用下一个值得方法._next_()不存在取上一个值得方法。并且只能一个一个的取值。

函数内部将需要中断结束当前运行的部分替换为yield 就会跳出当前运行过程,这样的函数称之为生成器。

下图是一个异常抓取的函数

可利用生成器进行单线程多并发。

可以直接作用于for循环对象称之为可迭代对象,isinstance()用来判断是否为可迭代对象,可以被next函数调用并不断返回下一个值得对象称之为迭代器,iter()函数

内置方法:

abs()取绝对值,all()全为真返回真,any()任意真返回真,ascii()将内存对象返回为字符串,bin()十进制转二进制,bytearray()可修改字节类型

callable()是否可调用,chr()输入ASCII返回数字,ord()遇上一个相反,compile()底层编译,dir()可调用的方法,dirmod()相除并返回商和余数

filter()过滤出所需数据与匿名函数连用,reduce()分批处理函数,在3.x中需要import fuctools。frozenset()不可变集合,hash()以一种固定的映射模式将变量存入内存

globals()打印一个程序中所有有意义的变量,不打印局部变量,hex()转16进制,id()返回内存地址。locals()只打印局部变量中有意义的变量,oct()转8进制

pow(x,y)x的y次幂,round()去小数点后两位,slice()切片,sorted()对字典进行排序,zip()拉链。

json和pickle序列化:

将程序运行状态挂起json只能处理简单的句子但可以跨平台运行,pickle可以处理复杂语句但是只能在python环境内部运行.

.load()序列化,.dump()反序列化.

最近的学习一再的被拖后,因为做了一份销售的工作,所以一直进度再被拖后,但是我是不会放弃的,希望各位与我共勉前行。

原文地址:https://www.cnblogs.com/Jicc-J/p/11354787.html