类与对象
对象=属性+方法
对象是类的实例。换句话说,类主要定义对象的结构,然后我们以类为模板创建对象。类不但包含方法定义,而且还包含所有实例共享的数据。
1.封装:信息隐蔽技术
我们可以使用关键字class定义Python类,关键字后面紧跟类的名称、分号和类的实现
2.继承:子类自动共享父类之间数据和方法的机制
3.多态:不同对象对同一方法响应不同的行动
self是什么?
Python的self相当于C++的this指针
类的方法与普通的函数只有一个特别的区别
——它们必须有一个额外的第一个参数名称(对应于该实例,即该对象本身),按照惯例它的名称是self。在调用方法时,我们无需明确提供与参数self相对应的参数
Python的魔法方法
类有一个名为__init__(self[,param1,param2…])的魔法方法,该方法在类实例化时会自动调用
公有和私有
在Python中定义私有变量只需要在变量名或函数名前加上“_”两个下划线,那么这个函数或变量就会为私有的了
继承
Python虽然支持多继承的形式,但我们一般不使用多继承,因为容易引起混乱
类属性和实例属性区别
1.类属性:类外面,可以通过实例对象.类属性和类名.类属性进行调用。类里面,通过self.类属性和类名.类属性进行调用
2.实例属性:类外面,可以通过实例对象.实例属性调用。类里面,通过self.实例属性调用
3.实例属性就相当于局部变量。出了这个类或者这个类的实例对象,就没有作用了
4.类属性就相当于类里面的全局变量,可以和这个类的所有实例对象共享
魔法方法
魔法方法总是被双下划线包围,例如__int__
魔法方法的第一个参数应为cls(类方法)或者self(实例方法)
1.cls:代表一个类的名称
2.self:代表一个实例对象的名称