着重于谁去做 vs 着重于做什么
迭代更新方便,方便管理 vs 不适合迭代,要做大量修改
类、对象、实例化、属性、方法类:用来描述具有相同的属性和方法的对象的集合
对象:具体的某个事物
实例化:创建一个类的实例
属性:对象描述信息 – 它的表现类似于变量
方法:对象的行为 – 它的表现类似于函数
类的三大基本特征封装、继承、多态
类的定义:使用关键字class以下三种形式都可以
class A:
pass
class A():
pass
class A(object):
pass
__init__方法:初始化方法
实例化对象的时候,自动调用__init__方法
__new__方法:创建实例的方法__new__方法必须要传入一个参数cls,代表当前类
__new__必须返回一个实例化对象
注意:先执行__new__,再执行__init__
selfself代表实例本身
self可以不写吗? 不传参可以不写,要传参一定要写
self一定要写成self吗?不一定,它就是个形参名字,也可以写成this,一般约定俗成写成self
多态的好处1、实现接口重用
2、增加了程序的灵活性
3、增加了程序的可扩展性
经典类与新式类经典类:不由任意内置类型派生出的类,则称之为“经典类”。
新式类:在Python 2.x及以前的版本中,由任意内置类型派生出的类(只要一个内置类型位于类树的某个位置),都属于“新式类”。
经典类与新式类最大的区别:在继承顺序上的区别
经典类:深度优先
新式类:c3算法
python中的下划线_a 保护属性
__a 私有属性:只有类内部自己访问
查看命名空间__dict__
类名__name__
查看对象属于哪个类__class__
查看所在模块__model__
文档注释__doc__
常见的魔术方法创建实例__new__
初始化实例__init__
析构方法__del__ :实例销毁或者释放的时候自动执行的方法
调用方法__call__ :有这个属性的对象称为callable对象,用处:把实例化后的对象当作函数自动调用
对象的描述信息__str__ 和__repr__



