魔法方法的意义及作用:
__new__():用于创建对象时解释器自动调用。
__init__():用于初始化对象属性时解释器自动调用。
__str__():打印对象时解释器自动调用。
__del__():解释器即将销毁对象时自动调用。
__call__():在使用实例对象名()时自动调用【用类做装饰器时会用到】。
__doc__():使用实例对象名.__doc__调用,输出类的注释(说明)。
__dict__():使用实例对象名.__dict__调用,输出当前实例对象的所有属性组成的字典。
__mro__():使用类名.__mro__调用,输出当前类的多重继承执行顺序。
继承、多层继承和多继承:
在多重继承这一点上Python与Java不同,在Java中不允许多重继承,而Python中既可多继承也可多重继承。
多态的概念以及应用:
由于Python是弱类型语言,所以方法的实参可以是任意类型的数据,被称为鸭子类型。
类属性和实例属性:
类属性为类对象的属性,在内存中只有一份,可通过类对象调用,也可通过实例对象访问,但如果要修改类属性则只能通过类对象修改。
实例属性则只能通过实例对象访问/修改。
实例方法、类方法、静态方法:
实例方法只能通过实例对象访问,类方法和静态方法都可通过类对象和实例对象访问,类方法和静态方法不同之处在于类方法必须要把类当做第一个参数传进去。
使用装饰器@staticmethod 装饰静态方法,使用@classmethod装饰类方法
单例模式:
重写父类的__new__()和__init__()方法,在创建对象时进行判断是否已创建过,是则返回第一次创建的对象,否就调用父类的new方法创建一个对象,初始化后返回。