为对象定义类
实例和对象是等价的,实例就是对象,对象就是实例。
定义一个类
初始化中的self可以更改为任何名字,self的含义为引用刚刚被创建的对象
调用类来构造对象
构造方法完成的两个任务
- 在内存中为类创建一个对象
- 调用类的_ _init _ _ 方法来初始化对象
self参数
- 定义的每一个方法第一个参数就是self
- self是指向对象本身的参数,例如可以用self.x 访问实例变量x,使用self.m1() 调用类的m1方法。
- self的一个实例变量被创建,作用域是在整个类
- 在类方法中也可以创建局部变量,局部变量的作用域在类方法内部
可变对象和不可变对象
- 不可变对象是python中的数字和字符串
- 可变对象 一个类的实例,在当实参传入函数的时候,在函数中操作该实例的元素时,实例中的值会发生改变
隐藏数据域
将类中的数据域保护起来,让类更易于维护,类似于java的private私有类
类的抽象和封装
类的抽象是将类的实现和类的使用进行分离。类的实现的细节对用户而言是不可见的。
先创建一个类的对象,并尽量使用类的方法,然后再把注意力放在类的实现上