鱼友lplnb

鱼友lplnb

暂无个人简介
男
Java后端
2027
武汉大学

该用户非会员

会员专享项目教程/ 答疑等服务

day5,今天学习了: ①面向对象基础: - 类与实例 - 访问限制(封装)私有变量的创建与操作 - 继承与多态 - 获取对象信息:type函数、isinstance、使用dir - 实例属性与类属性的区分,二者千万不要重名 ②面向对象高级: - 使用__slots__限制能够添加的实例属性 - 使用@property把一个方法变为属性以供调用,还可以把setter方法也转化为属性 - 多重继承:在定义一个类时,可以使用MixIn为其增置其他父类,主父类不用添加该后缀,这样的方式可以综合不同父类的不同方法构筑多功能子类 - 定制类:使用__str__、__iter__、__getitem__、__getatter__等特殊函数名构建出一系列具有特殊功能的定制类 - 枚举类:通过引入enum模块的Enum类可以从1开始默认计数的常量枚举类,还可以调用enum里的@unique装饰器自定义派生枚举类 - 元类:type()函数不仅可以判断数据类型,还可以动态创建类,需要传入class名称、父类集合以及方法名称和函数绑定;我们还可以使用metaclass(元类)来动态创建类,顺序是先定义metaclass(以Metaclass结尾),再创建类,最后创建实例,动态创建类的最常应用场景在ORM,一类对应一表 ③错误、调试和测试: - 错误处理:try-except(-else)-finally - 调试:print()、assert()、logging(可以输出到文件)、pdb(逐行执行)、pdb.set_trace()设置断点、IDE可视化断点调试,最常用的是logging和IDE - 单元测试:TDD开发的基石,确保逐个模块的可用性,再函数改变后依然可以起到验证效果 - 文档测试:doctest—函数下方注释里的可执行测试,测试类就是在想要测试的类的文档注释里写入交互示例,在if __name__ = "__main__"下方引入doctest,命令行运行后可以进行测试,单独作为模块引入不会进行测试

day4,今天学习了: ①自己调用自己但是逃脱不了栈溢出的递归函数; ②Python五大高级特性:切片(list、tuple、str,包头不包尾,可指定步长和是否反向)、迭代(凡是可以用for循环遍历的都是可迭代对象,可用isinstance来判断)、列表生成式(快速使用for循环生成的列表,可用if判断语句,处在for循环前面时是表达式,必须加else;处在for循环后面时是判断条件,不能用else)、生成器(是为了解决list的空间浪费问题,两种创建方式,把列表生成式的中括号改为小括号或者把函数的print改为yied,两种调用方式,next函数或者for循环)、迭代器(可以被next函数不断返回下一个值的对象是iterator,本质是惰性计算序列) ③函数式编程(面向过程编程思维,允许将函数作为输入值,还允许输出一个函数): (1)三大类高阶函数:map/reduce(数据变换/累积)、filter(数据筛选)、sorted(数据排序) (2)返回函数:把函数作为输出值,存在调用外层函数参数和局部变量的闭包 (3)匿名函数:方便的函数创建调用格式,lambda开头,如lambda x:x*x (4)装饰器:对已有函数进行装饰,用来增强函数功能的特殊函数,需要引用functools模块,使用functools.wraps方法 (5)偏函数:针对参数比较多的函数,对其部分参数给固定住,返回一个新函数,同样需要引入functools模块,使用其functools.partial方法。

day3 今天把之前学的所有内容(从Python简介到函数)的代码示例以及练习都手敲了一遍

今天学习了: ①Python基础之——四大序列(list、tuple、dict、set)和两大流程控制(条件判断/模式匹配+for/while循环) ②Python函数之——函数的定义、调用以及五大类参数设置和传递

今天学了Python基础之: ①数据类型和变量:五大数据类型以及变量常量 ②字符串与编码:字符编码以及Python中的字符串、编解码、格式化

下载 APP