老男孩Python 3.5学习第04周:装饰器、迭代器、序列化
函数嵌套是指在函数的定义内,用def声明一个函数,而非调用一个函数。
列表生成式
生成器不能分片。
a,b=b,a+b相当于t=(a,a+b),元组。
callable(),判断是否可调用。
exac,可将字符串执行成代码。
object=compile(code,'','exac'),编译代码,可实现动态地引入模块,而不必将模块文件存入Python安装目录lib下。不过老师后来发现,直接exac()调用就可以实现同样功能···
双下划线的方法是内部方法,一般不可用,除了__next__()。
isinstance()可用来判断是否是Iterable对象。
可以用于for循环的对象统称为可迭代对象:Iterable。
可以被next()函数调用并不断返回下一个值的对象称为迭代器:Iterator。
str.bytearray,修改字符串。
匿名函数,(lambda n:print(n))(5)。
filter(lambda n:n>5,range(10)),根据匿名函数的输出,过滤部分元素。
map(lambda n:n*2,range(10)),对元组内每个元素进行处理,得到一个新的元组。
functools.reduce(lambda x,y:x+y,range(10)),得到一个结果。在3.0中,reduce方法被移入标准库。
globals(),返回这个文件中所有变量,变量名为key,变量值为value,以字典形式。
hex(),转化十六进制。
oct(),转八进制。
round(),保留小数位数。
print(sorted(a.items())),按键排序。
print(sorted(a.items(),key=lambda x:x[1])),按值排序。
zip(),将前后两个列表中的元素一一摘取为元组。
序列化,把内存数据对象以字符串的形式存到硬盘文件中。
f.write(json.dumps(info)),序列化。
data=json.loads(f.read()),反序列化。
json,不同语言间传递。
pickle,只能在Python内部传递。
pickle.dump(info,f),等同于f.write(pickle.dumps(info))。
每次写程序只能dumps一次,loads一次。
readme内容:1.软件定位,软件的基本功能;2.运行代码的方法:安装环境、启动命令等;3.简要的使用说明;4.代码目录结构说明,更详细点可以说明软件的基本原理;常见问题说明。
os.path.dirname(),获取上一级文件相对路径名。
abuspath(),绝对路径名。