类:
类是抽象的概念,是一种数据结构,就好比生活中拥有相同属性的同一类的事物。比如人类,动物类,汽车类…等等
对象:
python中一切皆对象,对象就是类生产出来的真实物体,又被称为实例。比如动物类里面的对象:大象,狮子,老虎等等。
在python中定义一个类使用关键字class:
对像的表示方法是:object=类名(),如下Animal类产生了一个对象tiger,这个过程叫实例化,tiger就是实例对象。
类属性:
类属性是整个类共有的特征,每个成员都一样的,其他的类不一定具备。
如下:
类属性可以先天定义,也可以手动添加
实例属性:
每个成员私有的特征。
实例是可以访问类属性的,但是类不能访问实例属性。提示没有这个属性
可以看到在类外面定义实例属性是对象名.属性,如果在类里面定义实例属性需要用特定的
方法__init__构造方法来控制每个对象的属性是不一样的。
如下:
这里__init__定义的形参要和实例化对象zhangsan=Man()的实际参数,要一一对应。如下在实例化lisi的时候,缺少入参。
在构造方法__init__里面是没有返回值的,必须renturn None
在初始化对象的时候,定义实例属性要使用self,这里的self实际指的就是对象自己,如下:可以看到内存地址是一样的。
方法:实例方法,类方法,静态方法,表示类、对象的行为。
实例方法:
方法本质上是函数,与普通函数的区别:
1.在类里面定义,需要缩进
2.参数默认加self
3.调用的时候需要加前缀,类名或对象名
方法与方法之间是可以相互调用的,与之前的函数运行机制是一样的
这里的swimming()是实例方法,所有类不能直接调用
类方法:
需要在方法前面加@classmethod 标识是一个类方法,实例方法中的self改成cls。实例对象与类都可以调用。
这里的cls就是指的类自己,如图:
方法与方法之间的调用,在类方法中是不能调用实例方法的,实例方法中可以调用类方法。
静态方法:
方法的上面加@staticmethod 来表示是一个静态方法,没有固定参数。
与普通函数没有区别,只是刚刚好放在类里面。方便管理维护代码。调用的时候前面加上类名或对象名。
最后总结一下: