Loading

随笔分类 -  Python学习笔记

摘要:以下方法统称为富比较方法: __eq__(self, other) 使用==比较两个对象时会触发内部代码执行。 class A: def __eq__(self, other): print('触发A内方法的执行') if self.name == other.name: # 自己定制比较规则。 r 阅读全文
posted @ 2021-01-05 21:22 吃了好多肉 阅读(92) 评论(0) 推荐(0)
摘要:__len__(self) 内置函数len(obj)的原理就是触发对象所属类的__len__方法,该方法返回值必须为整型,len()拿到的就是该方法的返回值。 class F: def __len__(self): # 返回对象的属性数量 return len(self.__dict__) f = 阅读全文
posted @ 2021-01-05 21:19 吃了好多肉 阅读(75) 评论(0) 推荐(0)
摘要:__enter__(self)和__exit__(self, exc_type, exc_val, exc_tb) with语句也叫做上下文管理协议,为了让一个对象兼容with语句,必须在这个对象的类中声明enter和exit方法。 with 对象会触发类的__enter__执行,enter的返回值 阅读全文
posted @ 2021-01-05 21:18 吃了好多肉 阅读(187) 评论(0) 推荐(0)
摘要:__iter__(self)和__next__(self) Python中for循环的原理就是调用可迭代对象的__iter__方法得到迭代器对象,然后调用__next__方法进行取值,直到对象抛出StopIteration异常。某些语言例如go,即支持迭代循环,也支持索引循环。 自定义一个可迭代对象 阅读全文
posted @ 2021-01-05 21:17 吃了好多肉 阅读(132) 评论(0) 推荐(0)
摘要:__str__(self) 打印对象时print(obj)时会触发__str__的执行。 class A: def __str__(self): return 'str执行了' def __repr__(self): return 'repr执行了' a = A() print(a) str执行了 阅读全文
posted @ 2021-01-05 21:15 吃了好多肉 阅读(77) 评论(0) 推荐(0)
摘要:__call__(self,*args,**kwargs) 对象加括号obj()会触发所属类的__call__的执行。Python中一切皆对象,类加括号实例化对象时也会触发元类的__call__。 class Car: def __call__(self, *args, **kwargs): pri 阅读全文
posted @ 2021-01-05 21:13 吃了好多肉 阅读(145) 评论(0) 推荐(0)
摘要:派生 子类中新定义的属性的这个过程叫做派生,子类在使用派生的属性时始终以自己的为准。 class A1: x = 10 class B1(A1): x = 11 # 派生属性 def f1(self): # 派生方法 pass b = B1() print(b.x) 11 派生类中使用父类的属性 方 阅读全文
posted @ 2020-12-31 16:53 吃了好多肉 阅读(341) 评论(0) 推荐(0)
摘要:构造方法 __init__(self) 类名加括号,实例化对象时会触发执行,通常用来初始化赋值。可查看这篇__init__方法 析构方法 __del__(self) 当程序运行结束,对象在内存中被回收时,会触发执行。使用del删除对象时也会触发执行,通常用来进行一些资源回收的操作。 如果产生的对象仅 阅读全文
posted @ 2020-12-30 10:06 吃了好多肉 阅读(160) 评论(0) 推荐(0)
摘要:item系列 __getitem__(self, item) 通过中括号取值obj[item]触发它的执行,无论item是否存在。 __setitem__(self, key, value) 通过中括号赋值obj[key] = value触发它的执行,无论key是否存在。 __delitem__(s 阅读全文
posted @ 2020-12-30 10:05 吃了好多肉 阅读(179) 评论(0) 推荐(0)
摘要:面向对象中的魔法方法 在Python中以双下划线开头和结尾的方法都是魔法方法,在某种情况下回触发它们的执行,比如__init__方法会在类名()实例化对象时执行内部代码。魔法方法都经过处理,不遵循属性隐藏原则,可以在类外部直接通过对象.属性的方式执行。 点拦截方法 __setattr__(self, 阅读全文
posted @ 2020-12-30 10:04 吃了好多肉 阅读(142) 评论(0) 推荐(0)
摘要:isinstance(object,class) 判断对象object是否为class的实例或者是class直接、间接或虚拟子类,是则返回True。如果 object 不是给定类型的对象,函数将总是返回 False。isinstance与type类似,但type只能判断对象所属的类,不能判断基类。 阅读全文
posted @ 2020-12-29 15:54 吃了好多肉 阅读(143) 评论(0) 推荐(0)
摘要:类中定义的函数分为两大类 一、绑定方法 绑定给谁,谁来调用就会将它自身当做第一个参数传入: 1、绑定给类的方法:用classmethod装饰器装饰的方法。 给类使用,类名.boud_method()自动将类作为第一个参数传入。 2、绑定给对象的方法:没有被任何装饰器装饰的方法。 给对象使用,对象.b 阅读全文
posted @ 2020-12-29 15:10 吃了好多肉 阅读(136) 评论(0) 推荐(0)
摘要:封装 封装指的是将类中的多个属性或方法封装成一个接口,这样当我们调用这一个接口的时候,不需要去考虑该接口背后进行了什么操作,只需要知道该接口提供了什么功能即可。封装的主要优点是隔离复杂度。 # 定义一个相机类,每次照相都需要进行调整光圈、延时和按快门 class Camera: def set_ap 阅读全文
posted @ 2020-12-29 15:09 吃了好多肉 阅读(115) 评论(0) 推荐(0)
摘要:多态 多态指的是同一种事物有多种形态,比如水有液态、固态和气态。 一个抽象类有多个子类,因而多态的概念依赖于继承。 class Animal: def talk(self): pass class Dog(Animal): def talk(self): print('汪汪汪') class Cat 阅读全文
posted @ 2020-12-29 15:01 吃了好多肉 阅读(198) 评论(0) 推荐(0)
摘要:菱形继承问题 在Java中和C#中子类只能继承一个父类,而Python中子类可以继承多个父类,这就会出现多个父类中有相同属性时的属性查找顺序问题。 菱形指的是类的继承最后会形成一个闭环,一个子类的多个父类最后都会再继承同一个父类,那么它们的继承关系就是菱形结构或钻石结构。 如果继承关系为菱形结构,那 阅读全文
posted @ 2020-12-29 14:58 吃了好多肉 阅读(140) 评论(0) 推荐(0)
摘要:类的继承 继承是一种新建类的方式,新建的类称为子类或派生类,被继承的类称为父类、基类或超类。 继承的特性是:子类会遗传父类的属性和方法。 继承是类与类之间的关系,一个类可以继承多个类。 # 继承类语法 class 类名(父类名1,父类名2...): pass 类的分类 新式类 继承了object的类 阅读全文
posted @ 2020-12-29 14:53 吃了好多肉 阅读(585) 评论(0) 推荐(0)
摘要:编程思想 指的是用计算机来解决人类实际问题的思维方式。 面向过程编程思想 核心是”过程“二字,过程即流程,指的是做事的步骤。 优点: 复杂的问题流程化,进而简单化 缺点: 扩展性非常差 面向过程的编程思想应用场景解析: 1、不是所有程序都需要频繁更迭,比如脚本文件。 2、即便一个软件需要频繁更迭,也 阅读全文
posted @ 2020-12-29 14:51 吃了好多肉 阅读(111) 评论(0) 推荐(0)
摘要:Python基础 Python初识和基础语法 Python流程控制 Python基本运算符 Python基础数据类型以及格式化输出 赋值与深浅拷贝 字符编码 Python的文件操作 函数 函数基础语法及使用 Python名称空间与作用域及闭包函数 开放封闭原则和装饰器 多层装饰器叠加装饰 匿名函数以 阅读全文
posted @ 2020-12-27 22:00 吃了好多肉 阅读(268) 评论(1) 推荐(0)
摘要:三层架构 设想我们去餐厅吃饭,我们刚刚坐下来,就会有服务员过来为我们服务。服务员记下我们点的菜,然后将菜单传给厨房的大厨。大厨拿出后勤人员事先买好准备好的菜开始烹制,然后交给服务员端出来让我们享用。其实这个餐厅的饮食服务业务可以分解为三个部分来完成,每一部分各司其职。服务员只管接待顾客、向厨师传递顾 阅读全文
posted @ 2020-12-20 21:45 吃了好多肉 阅读(2678) 评论(1) 推荐(0)
摘要:logging模块 Python内置的日志模块,日志是对软件执行时所发生事件的一种追踪方式。软件开发人员对他们的代码添加日志调用,借此来指示某事件的发生。一个事件通过一些包含变量数据的描述信息来描述(比如:每个事件发生时的数据都是不同的)。开发者还会区分事件的重要性,重要性也被称为 等级 或 严重性 阅读全文
posted @ 2020-12-20 20:10 吃了好多肉 阅读(334) 评论(0) 推荐(1)