day13
1. 匿名函数函数:def 函数名(形参):函数体(return)函数名(实参)形参:1. 位置参数2. 默认值参数3. 动态传参*args: 动态接收位置参数**kwargs: 动态接收关键字参数位置 > *args > 默认值 > **kwargs实参:1. 位置参数2. 关键字参数3. 混合参数lambda 参数: 返回值2. sorted排序sorted(Iterable, key, reverse) 3. filter筛选filter(function, Iterable) 4. map映射map(function, Iterable) 5. 递归自己调用自己 6. 二分法(递归的应用)开头结尾中间面向对象
day14
1. 匿名函数lambda 参数: 返回值def chi():return "饱了"lambda : "饱了" 2. sorted 排序sorted(Iterable, key=function, reverse=False) 3. filter 筛选filter(function, Iterable) 4. map 映射map(function, Iterable)5. 递归函数自己调用自己函数的递归深度:10006. 列出文件夹内的所有文件import osos.listdir()os.path.join() 拼接路径os.path.isdir() 判断是否是文件夹os.remove()os.rename() 7. 二分法开头结尾中间
day15
面向对象面向过程: 以我为中心. 按照事物发展的流程顺序来写代码优点: 代码量少, 简单缺点: 扩展性差面向对象; 以对象为中心. 所有的东西都是对象. 操纵的是对象. 让对象去完成相应的操作对象是通过类来创建的 类是属性和方法的结合体. 归类. 我们写的每一个类都是一个数据类型class 类(父类):def __init__(self): 构造方法.在创建对象的时候自动调用passdef 方法(self):passa = 类() # 这里调用的是__init__()# 访问对象的属性 a.属性 # 方法 a.方法()self: 类的对象对比:大项目用面向对象小脚本用面向过程封装1. 对属性的封装2. 对方法的封装 继承子类可以自动拥有父类中除了私有内容外的所有内容 多态同一个对象拥有多种形态. 鸭子模型
day16
成员:变量1. 实例变量. 对象.xxx self.属性 = 值2. 类变量. 类名.变量. 直接写在类中的变量. 可以通过对象去访问类变量. 不能修改方法1. 实例方法.def 方法(self):pass用对象去调用实例方法2. 类方法@classmethoddef 方法(cls):pass3. 静态方法@staticmethoddef 方法():pass属性可以把方法转化成属性@propertydef 属性(self):return ""对象.属性私有:用双下滑线做前缀. 私有的内容只能在本类中访问.
day 17
类与类之间的关系1. 依赖关系. 通过参数的传递把另外一个类的对象传递进来2. 关联关系, 组合, 聚合. 通过属性设置来维护两个对象的关系def __init__():self.stuList = []def __init__():self.teacher = teacher3. 关于继承self: 谁调用的,. self就是谁4. 特殊成员__init__() 初始化方法__new__() 构造方法__call__() 对象()__add__() +__getitem__ 对象[]__setitem__ 对象[] = 值__delitem__ del 对象[]__del__ del 对象. 析构__len__ len(对象)__iter__ for. iter()__next__ next()__dir__ dir()__getslice__ 对象[::]__hash__ hash()__class____dict__ 查看当前想的属性
day 18
1. 反射1. hasattr(对象, 属性(字符串))2. getattr(对象, 属性(字符串))3. setattr(对象, 属性, 值)4. delattr(对象, 属性) 2. issubclass, type, isinstanceissubclass, 判断xxx对象或者类是否是xxx的子类type: 获取到xxx对象的数据类型isinstance 判断xxx对象是否是xxx类型的(向上) 3. 方法和函数类外面写的函数都是函数在类中:实例方法:1. 类名.方法() 函数2. 对象.方法() 方法类方法:都是方法静态方法:都是函数from types import FunctionType, MethodTypeisinstance(方法或者函数, FunctionType)isinstance(方法或者函数, MethodType)4. md5特点:不可逆加盐import hashlibobj = hashlib.md5(盐)obj.update(byte类型的铭文)miwen = obj.hexdigest()
day19
1. 约束1. 抛出异常. NotImplementedError2. 抽象类from abc import ABCMeta, abstractmethodclass 类(metaclass=ABCMeta):@abstractmethoddef 方法(self):pass类中如果存在抽象方法. 类一定是抽象类抽象类中可以包含普通方法抽象类一般不创建对象接口: 所有的方法都是抽象方法子类必须重写父类中的抽象方法. 否则.子类也是一个抽象类2. 异常处理import tracebacktry:要执行的代码except Exception as e:处理异常traceback.format_exc()....else:finally:自定义异常class 类(Exception):passraise Exception("说明")你的错误也是对象