一、基础概念:类是用来描述具有相同属性和方法的集合,类是抽象的描述。对象是类的实例化。
二、类的定义:class 类名
三、类的三大特性:封装、继承、多态
-
封装(仅做了解): 1.基础概念:是对对象的一种具体抽象,即将一些内容(方法、数据)隐藏起来,外部程序无法调用。只能通过特定的方法去调用。 2.常用的封装方法: 2.1 第一种方法就是什么都不做,直接使用对象或者类名去访问类中的属性、变量、方法。 2.2 第二中方法就是私有化,但是Python没有严格意义上的私有化。私有化的内容都可以已特定的方式访问到。 -
继承: 1. 基础概念: 一个类通过特定的方法去获取另一个类具有的属性和方法。(即一个派生类(derived class)继承基类(base class)的字段和方法。) 2. 常见的继承方式:单继承(classA(classB)😃、多继承 (sonclass(fatherclass,motherclass):)、多层继承(类a继承类b,类c继承类a,此时类c也会具有类a具有的方法和属性,中间层父类无底层子类想要的方法、属性时,则一直会往上找。) 3. 类继承时,常见的操作: 2.3.1 方法重写(override): 重写普通方法: 重写父类的__init__(self)方法: 2.3.2 调用超类方法(super().方法名):可以直接访问到父类中的方法。 -
多态(仅做了解,个人感觉跟继承差不多):一个父类有多个子类。子类调用父类相同的方法后,产生不通的执行结果。
四、类的初始化方法:init(self) 作用:对“对象”进行初始化,赋予对象基础的属性。类似于其它语言中的构造函数,但是Python没有构造函数。 注意:该方法不能使用return。
五、类常见的三种方法:类方法、实例方法、静态方法 类方法(@classmethod) -概念:需要使用@classmethod装饰器修饰。类方法可被继承,可以直接通过类名调用(推荐)或者类的实例对象调用(不推荐) -作用(应用场景):在程序中,某个方法在逻辑上更适合使用类对象调用,便可将该方法定义为类方法。(比如工具类(一些需要多次被调用的方法),这样子可以不用实例化,直接通过类调用类中的方法。) 实例方法: -概念:通常Python类中定义的方法都是实例方法,实例方法的特点是至少包含一个self参数,理论上初始化函数也是实例方法。实例方法可以通过类对象直接调用。 -作用(应用场景):常见的方法,大多数都是实例方法。需要使用实例对象调用。 静态方法(@staticmethod): -概念:需要使用@staticmethod装饰器修饰。静态方法也可被继承,可以通过类名调用或者类的实例化对象调用:静态方法不能访问类的属性、方法。 -作用(应用场景):用于存放独立的方法,方法或者属性在逻辑上属于类,但是和类没有直接关系。不会涉及类中方法和属性的操作,是个独立的函数。
六、动态属性设置(JAVA里面叫反射)
-
setattr:给类或者对象动态设置/修改属性值 ===> setattr(类名/对象名,属性名) -
getattr:获取类或者对象的属性值:三个参数,第一个是类或者对象;第二个是想要获取的属性值,第三个是当属性值不存在时的默认返回值 -
hasattr:判断属性在类中是否存在,返回bool类型
- delattr:删除类中的属性,属性不存在时会报错。当需要删除类属性时,必须使用类名,而不是实例名,否则会报错
七、其它注意点:
- 对象可以当做参数传递。
- 继承时,会将父类中的类方法同步继承
- 使用super()函数访问类方法时,如果子类同时继承类多个父类,并且每个父类均有相同的方法,使用super().方法名访问时,会采用就近原则。
|