随笔分类 - Python基础
学会它你就是初级程序员
摘要:元类(metaclass) 一、引言 元类属于python面向对象编程的深层魔法,99%的人都不得要领,一些自以为搞明白元类的人其实也只是自圆其说、点到为止,从对元类的控制上来看就破绽百出、逻辑混乱,今天我就来带大家来深度了解python元类的来龙去脉。 笔者深入浅出的背后是对技术一日复一日的执念,
阅读全文
摘要:实现文件上下文管理(\_\_enter\_\_和\_\_exit\_\_) 我们知道在操作文件对象的时候可以这么写 上述叫做上下文管理协议,即with语句,为了让一个对象兼容with语句,必须在这个对象的类中声明\_\_enter\_\_和\_\_exit\_\_方法 一、上下文管理协议 \_\_e
阅读全文
摘要:\_\_module\_\_和\_\_class\_\_ 一、\_\_module\_\_ \_\_module\_\_ 表示当前操作的对象在那个模块 二、\_\_class\_\_ \_\_class\_\_表示当前操作的对象的类是什么
阅读全文
摘要:实现迭代器(__next__和__iter__) 一、简单示例 死循环 二、StopIteration异常版 加上StopIteration异常 三、模拟range 四、斐波那契数列
阅读全文
摘要:和`__repr__` 一、 打印时触发 obj和dic都是实例化的对象,但是obj打印的是内存地址,而dic打印的是有用的信息,很明显dic的打印是非常好的 二、 str函数或者print函数 repr或者交互式解释器 如果 没有被定义,那么就会使用 来代替输出 注意:这俩方法的返回值必须是字符串
阅读全文
摘要:曾经我幼稚的以为认识了python的 方法就相当于认识了类构造器,结果, 方法突然出现在我眼前,让我突然认识到原来 才是老大。为什么这么说呢? 我们首先得从 的参数说说起, 方法的第一个参数是这个类,而其余的参数会在调用成功后全部传递给 方法初始化,这一下子就看出了谁是老子谁是小子的关系。 所以,
阅读全文
摘要:一、 对象后面加括号时,触发执行。 注:构造方法的执行是由创建对象触发的,即:对象 = 类名() ;而对于 方法的执行是由对象后加括号触发的,即:对象() 或者 类()()
阅读全文
摘要:\_\_doc\_\_ 一、\_\_doc\_\_ 返回类的注释信息 该属性无法被继承
阅读全文
摘要:\_\_slots\_\_ 一、什么是\_\_slots\_\_ \_\_slots\_\_是一个类变量,变量值可以是列表,元祖,或者可迭代对象,也可以是一个字符串(意味着所有实例只有一个数据属性) 使用点来访问属性本质就是在访问类或者对象的\_\_dict\_\_属性字典(类的字典是共享的,而每个
阅读全文
摘要:\_\_del\_\_ 一、\_\_del\_\_ \_\_del\_\_也称之为析构方法 \_\_del\_\_会在对象被删除之前自动触发
阅读全文
摘要:\_\_format\_\_ 一、\_\_format\_\_ 自定制格式化字符串
阅读全文
摘要:\_\_setitem\_\_和\_\_getitem\_\_和\_\_delitem\_\_ 一、\_\_setitem\_\_ 中括号赋值时触发 二、\_\_getitem\_\_ 中括号取值时触发 三、\_\_delitem\_\_与\_\_delattr\_\_ \_\_delitem\_\
阅读全文
摘要:描述符(__get__和__set__和__delete__) 一、描述符 描述符是什么:描述符本质就是一个新式类,在这个新式类中,至少实现了\_\_get\_\_(),\_\_set\_\_(),\_\_delete\_\_()中的一个,这也被称为描述符协议 \_\_get\_\_():调用一个属
阅读全文
摘要:__getattribute__ 一、__getattr__ 不存在的属性访问,触发__getattr__ 二、__getattribute__ 查找属性无论是否存在,都会执行 你可真霸道呀!!! 三、__getattr__与__getattribute__ 当__getattribute__与__
阅读全文
摘要:__setattr__和__delattr__和__getattr__ 一、__setattr__ 添加/修改属性会触发它的执行 二、__delattr__ 删除属性的时候会触发 三、 __getattr__ 只有在使用点调用属性且属性不存在的时候才会触发
阅读全文
摘要:反射(hasattr和getattr和setattr和delattr) 一、反射在类中的使用 反射就是通过字符串来操作类或者对象的属性 反射本质就是在使用内置函数,其中反射有以下四个内置函数: 1.1 应用 需求:通过用户输入命令启动功能 二、反射在模块中的使用 2.1 前言 我们要导入另外一个模块
阅读全文
摘要:isinstance和issubclass 一、isinstance与type 在游戏项目中,我们会在每个接口验证客户端传过来的参数类型,如果验证不通过,返回给客户端“参数错误”错误码。 这样做不但便于调试,而且增加健壮性。因为客户端是可以作弊的,不要轻易相信客户端传过来的参数。验证类型用type函
阅读全文
摘要:类和对象的绑定方法及非绑定方法 类中定义的方法大致可以分为两类:绑定方法和非绑定方法。其中绑定方法又可以分为绑定到对象的方法和绑定到类的方法。 一、绑定方法 1.1 对象的绑定方法 在类中没有被任何装饰器修饰的方法就是 绑定到对象的方法,这类方法专门为对象定制。 speak即为绑定到对象的方法,这个
阅读全文
摘要:类的property特性 一、什么是 property特性 property装饰器用于将被装饰的方法伪装成一个数据属性,在使用时可以不用加括号而直接使用 如下的例子用于说明如何定一个简单的property属性: property属性的定义和调用要注意一下几点: 1.定义时,在实例方法的基础上添加 @
阅读全文
摘要:类的多态和多态性 很多人喜欢将多态与多态性二者混为一谈,然后百思不得其解,其实只要分开看,就会很明朗。 一、多态 多态指的是一类事物有多种形态,(一个抽象类有多个子类,因而多态的概念依赖于继承) 序列数据类型有多种形态:字符串,列表,元组 动物有多种形态:人,狗,猪 1.1 动物的多种形态 1.2
阅读全文

浙公网安备 33010602011771号