一、对象的初始化
什么是初始化呢?初始化的意思就是说要通过定义一个类得到一个具体的对象,这个过程就是一个初始化的过程,也叫实例化。其实就是类的调用过程 比如,xiaowang = Man()就是一个实例化
什么是对象呢?对象个体:初始化过程要保证每个对象生出来是不一样的;相当于我们自己给某个东西进行出厂设置
初始化的过程通常是在一个特定的方法中去控制的,这个方法就是_ _ init _ _;这是一个固定的方法,可以控制对象的先天的属性
实例属性的两种定义方式
类里面:self . 属性【先天定义的实例属性】
类外面:对象 . 属性【后天定义的属性】
_ _init_ _ 定义的形式参数 和 对象的实例化 yuz = Man() 里面的实际参数应该是一一对应的,否则就会报错
_ _ init_ _ 的特性:
1、没有return,如果写return,必须return None
2、传入的参数必须要设置成实例属性,才能被对象访问到
二、self 和 cls
self:在类里面,表示一个 对象 他自己,自我
cls:在类里面,表示一个 类 他自己,自我
在实例方法中为什么要加一个self?
为了方便调用类其他的东西,如果不加一个self,就用不了这个类其他的属性、方法;
如果不加 self 那么这个方法就跟这个类没有任何关系了,就跟一个静态方法没有区别了,那么他就是一个普通的函数
作为一个类当中的实例方法,加一个self是有用处的,加上self 之后可以非常灵活的去使用、去调用这个类里面的其他的属性;加了self 这个方法就更加强大了。
在实例方法当中,也可以去定义实例属性,但是不建议这么操作;最好是所有的实例属性都定义在__init__里面,这样不容易出错;如果将实例属性定义在实例方法中,那么只有当这个方法被调用以后,这个实例属性才能生效
三、总结
1、实例属性和类属性的区别
实例可以获取实例属性和类属性
类只能获取类属性
2、方法
实例方法:实例具备的,类不一定具备。类不能调用实例方法
类方法:类具备的,实例可以获取
静态方法:放在类里面的函数
3、__init__
是对象的初始化过程。通常在里面定义实例属性。
实例属性的值,通过参数传递进来
参数必须要赋值给实例属性,即self.属性 = 参数;才能通过实例调用 实例就是指的对象
4、self 和 cls
self,类里面表示,对象。
cls,类里面表示,类。