Python基础操作之类和对象

一、基础概念:类是用来描述具有相同属性和方法的集合,类是抽象的描述。对象是类的实例化。

二、类的定义:class 类名
在这里插入图片描述

三、类的三大特性:封装、继承、多态

  1. 封装(仅做了解):
    1.基础概念:是对对象的一种具体抽象,即将一些内容(方法、数据)隐藏起来,外部程序无法调用。只能通过特定的方法去调用。
    2.常用的封装方法:
    2.1 第一种方法就是什么都不做,直接使用对象或者类名去访问类中的属性、变量、方法。
    2.2 第二中方法就是私有化,但是Python没有严格意义上的私有化。私有化的内容都可以已特定的方式访问到。

  2. 继承:
    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().方法名):可以直接访问到父类中的方法。
    在这里插入图片描述

  3. 多态(仅做了解,个人感觉跟继承差不多):一个父类有多个子类。子类调用父类相同的方法后,产生不通的执行结果。

四、类的初始化方法:init(self)
作用:对“对象”进行初始化,赋予对象基础的属性。类似于其它语言中的构造函数,但是Python没有构造函数。
注意:该方法不能使用return。

五、类常见的三种方法:类方法、实例方法、静态方法
类方法(@classmethod)
-概念:需要使用@classmethod装饰器修饰。类方法可被继承,可以直接通过类名调用(推荐)或者类的实例对象调用(不推荐)
-作用(应用场景):在程序中,某个方法在逻辑上更适合使用类对象调用,便可将该方法定义为类方法。(比如工具类(一些需要多次被调用的方法),这样子可以不用实例化,直接通过类调用类中的方法。)
实例方法:
-概念:通常Python类中定义的方法都是实例方法,实例方法的特点是至少包含一个self参数,理论上初始化函数也是实例方法。实例方法可以通过类对象直接调用。
-作用(应用场景):常见的方法,大多数都是实例方法。需要使用实例对象调用。
静态方法(@staticmethod):
-概念:需要使用@staticmethod装饰器修饰。静态方法也可被继承,可以通过类名调用或者类的实例化对象调用:静态方法不能访问类的属性、方法。
-作用(应用场景):用于存放独立的方法,方法或者属性在逻辑上属于类,但是和类没有直接关系。不会涉及类中方法和属性的操作,是个独立的函数。

六、动态属性设置(JAVA里面叫反射)

  1. setattr:给类或者对象动态设置/修改属性值 ===> setattr(类名/对象名,属性名)
    在这里插入图片描述

  2. getattr:获取类或者对象的属性值:三个参数,第一个是类或者对象;第二个是想要获取的属性值,第三个是当属性值不存在时的默认返回值
    在这里插入图片描述

  3. hasattr:判断属性在类中是否存在,返回bool类型

在这里插入图片描述

  1. delattr:删除类中的属性,属性不存在时会报错。当需要删除类属性时,必须使用类名,而不是实例名,否则会报错
    在这里插入图片描述

七、其它注意点:

  1. 对象可以当做参数传递。
  2. 继承时,会将父类中的类方法同步继承
  3. 使用super()函数访问类方法时,如果子类同时继承类多个父类,并且每个父类均有相同的方法,使用super().方法名访问时,会采用就近原则。在这里插入图片描述
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值