对象 = 属性 + 方法
首先,我们要创建一个类(class),类名我们使用大写字母开头,
封装
封装就是在创建对象之前通过类将相关的属性和方法给打包到一起,然后通过类来生成相应的对象
通过self传递信息:
传递给方法的就是实例对象本身,同一个类可以生成无数个对象的,当我们调用类里面的方法的时候,就可以铜鼓self参数传递的信息,所以类中的每一个方法默认的第一个参数都是self
继承
通过继承创建的新类我们称之为子类,而被继承的类我们成为父类,基类或者超类
判断一个对象是否属于某个类,我们可以使用isinstance()函数,可以使用issubclass()函数来检测一个类是否为某个类的子类,
多重继承
一个子类同时可以继承多个父类,
组合
绑定
想要知道当前拥有什么属性的话,可以使用__dict__来进行内省,
构造函数
构造函数有一个特殊的名称叫 __init__(),我们只需要在类中定义__init__()方法就可以在实例化对象的同时实现个性化定制,
重写
如果对父类的某个属性或者方法不满意的话,就可以写一个同名的属性或方法来进行覆盖,对这种方法我们称之为子类对父类的重写,
这样写虽然简便但是会出现钻石继承,因此我们使用super()函数来进行继承,
mixin
mixin就是 mix-in 也就是混入,
通俗来讲,mixin基本都是后期加上去的功能,可以理解为游戏外挂。。。
多态
他是值同一个运算符,函数或者对象在不同的场景下具有不同的作用效果这么一个技能,
这里实现的就是运算符多态。
python时可以允许在子类中定义和父类同名的方法,也就是说,如果我们对父类的某个方法不满意的话,可以在子类中重新定义一个同名的方法进行一个覆盖。也就是重写。
私有变量
私有变量就是指通过某种手段使得对象的属性或者方法无法被外部所访问的机制。
在python中那种仅限从一个对象内部才能访问的“私有变量”并不存在,它引入了一个叫做name mangling的机制,名字改编,名字改写。语法也很简单,就是在名字的前面加上两个连续的下横线。
魔法方法
__init__(self[,...])方法也是魔法方法之一,魔法方法就是让你创建的对象听你的调用,
参与构建对象还有 一个__new__(cls[,...])方法,当对象即将被销毁的时候,也会调用一个魔法方法叫__del__(self)
属性访问
hasattr(),getattr(),setattr(),delattr().
他们也有与之对应的魔法方法:
__getattr__()
于它对应的函数是__getattribute__(),这个函数是只有在用户试图去获取一个不存在的属性的时候才会被触发的魔法方法,
__getitem__(self,index)
是当对象被索引的时候,python 会调用这个方法,它既能响应单个下标的索引操作,也能支持代表范围的切片索引方式,
__call__(self[,args...])