1基础知识
主要是结合菜鸟教程对一些重要或者模糊的知识点进行记录,另外敲写一遍基础代码
12file里面的seek需要以二进制打开,不然会报错,
can’t do nonzero end-relative seeks
13pickle可以用来将对象以二进制存于pkl文件中,注意此文件打开方式为b,同时也有函数和面向对象的类方法Pickler,这部分菜鸟简单介绍便略了,功能类似于xml或者json
pickle.dump(obj, file, protocol=None,*,fix_imports=True)
pickle.dumps(obj, protocol=None,*,fix_imports=True)
pickle.dumps()方法跟pickle.dump()方法的区别在于,pickle.dumps()方法不需要写入文件中,它是直接返回一个序列化的bytes对象。
Pickler(file, protocol).dump(obj)
其中protocol表示协议种类,使用num区分
可参考:
https://www.jb51.net/article/135407.htm
14with结构的预处理方式来处理file关闭问题
try except else raise finally结构的错误处理
15init为初始化的意思,类里的init方法不需人工调用,实例化的时候就可以直接运行,以此来进行初始化
__init__()
为类的专有方法
__xiao()为类的私有方法
lin为类的私有变量
私有方法可以自己定义名称,专有方法为特定名称有原始的认定用途,私有变量为变量,注意私有变量和私有方法都是__开头,专有方法是两端都是。均是只能在类中使用,不能在实例中使用
16闭包概念,闭包的意思是在使用内部函数前将外部函数的变量固定,以在使用内部函数时不会因外部函数释放而无法得到数值。闭包可以多次实例化,在这个多次实例化的使用就可以实现代码复用,比如定义直线,可以外部函数定义多条直线,一条便是一个实例化,再确定点的x坐标便可。闭包常犯的错误在变量定义上如
def foo():
a = 1
def bar():
a = a+ 1
return a
return bar
这个其实是解读代码的一个问题,涉及到变量域
可以参考https://www.jb51.net/article/152425.htm
在这里面循环体的内部变量保存和函数调用时才寻找变量的规律很容易搞错
17类专有函数重载比如加减乘除类的,需要注意参数赋值规律
https://blog.csdn.net/zhangshuaijun123/article/details/82149056
这里要注意其意义,还有pass空函数的作用,就是为了之后的重载预留位置来易读