10.12 classmethod,staticmethod,反射,魔法方法

classmethod

是一个装饰器,可以装饰类内部的方法,使该方法绑定给类来使用

对象的绑定方法特殊之处

由对象来调用,会将对象当作第一个参数

类的绑定方法特殊之处

由类来调用,会将类当作第一个参数

staticmethod

是一个装饰器,可以装饰给类内部的方法,使用该方法即不绑定给对象,也不绑定给类

面向对象高级方法

isinstance

python的内置函数,可以传入两个参数,用于判断参数1是否是参数2的实例
判断一个对象是否是一个类的实例

issubclass

python的内置函数,可以传入两个参数,用于判断参数1是否是参数2的子类
判断一个类是否是另一个类的子类

反射

指的是通过字符串对象的属性进行操作
hasattr:通过字符串,判断该字符串是否是对象的属性
getattr:通过字符串,获取对象的属性
setattr:通过字符串,设置对象的属性
delattr:通过字符串,删除对象的属性

魔法方法(类的内置方法)

凡是在类内部定义,以__开头__结尾的方法都称之为"魔法方法",又称之为"类的内置方法"
"魔法方法"会在某些条件成立时触发
__init__:在调用类的时候自动触发
__str__:会在打印对象时触发
__del__:对象被销毁前执行,该方法会最后触发(与所在前后位置无关)
__getattr__:会在对象.属性时,"属性没有"的情况下触发
__setattr__:会在对象.属性=属性值时触发
__call__:会在对象被调用时触发
__new__:会在__init__执行前触发

单例模式(面试常提)

单例模式指的是单个实例,实例指的是调用类产生的对象

实例化多个对象时,会产生多个内存地址,单例可以让所有调用者,在调用类产生对象情况下都指向同一份内存地址

单例的目的:为了减少内存的占用

posted @ 2019-10-12 16:52  断指轩辕  阅读(319)  评论(0编辑  收藏  举报