随笔分类 - python学习之路
摘要:\_\_module\_\_和\_\_class\_\_ [TOC] 一、\_\_module\_\_ \_\_module__ 表示当前操作的对象在那个模块 二、通过字符导入模块 三、\_\_class__ \_\_class__表示当前操作的对象的类是什么
阅读全文
摘要:实现迭代器(\_\_next\_\_和\_\_iter\_\_) [TOC] 一、简单示例 死循环 二、StopIteration异常版 加上StopIteration异常 True 1 2 3 4 三、模拟range 四、斐波那契数列
阅读全文
摘要:\_\_str\_\_和\_\_repr\_\_ [TOC] 一、\_\_str\_\_ 打印时触发 {'a': 1} obj和dic都是实例化的对象,但是obj打印的是内存地址,而dic打印的是有用的信息,很明显dic的打印是非常清楚 打印的时候自动触发,但是其实不需要print即可打印 rand
阅读全文
摘要:\_\_init\_\_和\_\_new\_\_ 一、\_\_new\_\_和\_\_init\_\_ 曾经我幼稚的以为认识了python的\_\_init\_\_()方法就相当于认识了类构造器,结果,\_\_new\_\_()方法突然出现在我眼前,让我突然认识到原来\_\_new\_\_才是老大。
阅读全文
摘要:_\_call\_\_ 一、\_\_call\_\_ 对象后面加括号时,触发执行。 注:构造方法的执行是由创建对象触发的,即:对象 = 类名() ;而对于\ _\_call\_\_ 方法的执行是由对象后加括号触发的,即:对象() 或者 类()() 先执行父类的\_\_call\_\_,然后在执行自己
阅读全文
摘要:\_\_doc\_\_ 注释信息 一、__doc__ 返回类的注释信息 我是描述信息 该属性无法被继承 None
阅读全文
摘要:\_\_slots\_\_ 一、什么是\_\_slots__ \_\_slots__是一个类变量,变量值可以是列表,元祖,或者可迭代对象,也可以是一个字符串(意味着所有实例只有一个数据属性) 使用点来访问属性本质就是在访问类或者对象的__dict__属性字典(类的字典是共享的,而每个实例的是独立的)
阅读全文
摘要:\_\_del\_\_ 一、\_\_del__ \_\_del__也称之为析构方法 \_\_del__会在对象被删除之前自动触发 del会在对象被删除之前自动触发 主 二、总结 \_\_del__: 会在del对象之前触发,比如关闭文件
阅读全文
摘要:格式化输入 \_\_format\_\_ 格式化输入 一、\_\_format__ 自定制格式化字符串 2019:12:29 12 29 2019
阅读全文
摘要:\_\_setitem\_\_和\_\_getitem和\_\_delitem__ [TOC] 一、\_\_setitem__ 正括号赋值时触发 二、\_\_getitem__ 正括号取值时触发 三、\_\_delitem\_\_与\_\_delattr__ __delitem__:中括号删除时触发
阅读全文
摘要:描述符(\_\_get\_\_和\_\_set\_\_和\_\_delete\_\_) 一、描述符 描述符是什么:描述符本质就是一个新式类,在这个新式类中,至少实现了__get__(),__set__(),__delete__()中的一个,这也被称为描述符协议 \_\_get__():调用一个属性时
阅读全文
摘要:\_\_getattribute\_\_ 一、\_\_getattr\_\_ 不存在的属性访问,触发__getattr__ 10 执行的是我 二、\_\_getattribute\_\_ 查找属性无论是否存在,都会执行 不管是否存在,我都会执行 不管是否存在,我都会执行 三、\_\_getattr\
阅读全文
摘要:面向对象进阶小结 一、面向对象进阶小结 面向对象最本质解决的问题就是:提供可扩展性 类与对象:程序中必须现有类,再有对象 类中有属性,有方法 绑定方法:定义在类内部,没有装饰器装饰的方法都是对象的绑定方法,需要对象来调用,对象调用的时候,会把自身传入 1.1 类的继承 继承父类,则会有父类的所有属性
阅读全文
摘要:property装饰器 一、什么是property特性 property装饰器用于将被装饰的方法伪装成一个数据属性,在使用时可以不用加括号而直接使用 如下的例子用于说明如何定一个简单的property属性: 100 property属性的定义和调用要注意一下几点: 1. 定义时,在实例方法的基础上添
阅读全文
摘要:super()方法详解 一、单独调用父类的方法(指明道姓) 需求:编写一个类,然后再写一个子类进行继承,使用子类去调用父类的方法1。 使用方法1打印: 胖子老板,来包槟榔。 那么先写一个胖子老板的父类,执行一下: 运行一下这个胖子老板父类的构造方法\_\_init_\_ 如下: FatFather的
阅读全文
摘要:菱形继承问题 一、类的分类 1.1 新式类 继承了object的类以及该类的子类,都是新式类 Python3中所有的类都是新式类 1.2 经典类 没有继承object的类以及该类的子类,都是经典类 只有Python2中才有经典类 二、菱形继承问题 在Java和C 中子类只能继承一个父类,而Pytho
阅读全文
摘要:类的派生 一、派生 派生:子类中新定义的属性的这个过程叫做派生,并且需要记住子类在使用派生的属性时始终以自己的为准 1.1 派生方法一(类调用) 指名道姓(类名点方法)访问某一个类的函数:该方式与继承无关 1.2 派生方法二(super) 严格以来继承属性查找关系 super()会得到一个特殊的对象
阅读全文
摘要:类的继承 [TOC] 一、什么是继承 继承是一种新建类的方式,新建的类称为子类,被继承的类称为父类 继承的特性是:子类会遗传父类的属性 继承是类与类之间的关系 二、为什么用继承 使用继承可以减少代码的冗余 三、对象的继承 Python中支持一个类同时继承多个父类 使用__bases__方法可以获取对
阅读全文
摘要:面向对象基础小结 [TOC] 一、面向对象基础小结 1.1 面向对象编程 面向过程编程:类似于工厂的流水线 优点:逻辑清晰 缺点:扩展性差 面向对象编程:核心是对象二字,对象属性和方法的集合体,面向对象编程就是一堆对象交互 优点:扩展性强 缺点:逻辑非常乱 1.2 类与对象 对象:属性和方法的集合体
阅读全文
摘要:对象的高度整合 [TOC] 一、没有对象 以未来我们要连接数据库举例,如果没有面向对象的思想,我们只要想要使用一个方法,就必须得这样做 由于host、port、db、charset可能是固定不变的,sql一直在变化,因此我们通过上述的方法实现不同的sql语句,非常麻烦,因此我们可以改用默认形参 虽然
阅读全文