python 第五部分:面向对象 (学习笔记)

本文详细记录了Python编程中的面向对象特性,包括类的定义、对象的创建、继承、封装和多态等核心概念,旨在帮助读者深入理解Python的OOP思想。
摘要由CSDN通过智能技术生成
一、面向对象
将编程当成一个事物,对外界来说,事物是直接使用的,不用去管他内部的情况,而编程就是设置事物能够做什么事。

1.类和对象
关系:用类去创建一个对象
类:是对一系列具有相同特征和行为的事物的统称,是一个抽象的概念,不是真实存在的事物
> 特征即是属性
> 行为即是方法
对象:是类创建出来的真实存在的事物

2.定义类
语法:新式类
class 类名():
         代码
注:类名要满足标识符命名规则,遵循大驼峰命名规则

语法:经典类(不由任何内置类型派生出的类)
class 类名:
      代码

3.创建对象:实例化的过程
语法:对象名=类名()

4.self指的是调用该函数的对象

5.类外面添加对象属性
语法:对象名.属性名 =6.类外面获取对象属性
语法:对象名.属性名

7.类里面获取对象属性
语法:self.属性名

二、魔法方法(_xx_():指具有特殊功能的函数
1.__init__():初始化对象,在创建一个对象时默认被调用,不需要手动调用
__init__(self)中的self不需要开发者传递,python解释器会自动把当前的对象引用传递过去
2.带参数的__init__():__init__(self,width,height)
3.__str__():当使用print输出对象的时候,默认打印对象的内存地址。若类定义了__str__()方法,就会打印从这个方法中return的数据。
4.__del__():删除对象时,解释器会默认调用__del__()方法


三、面向对象——继承
1.继承:指的是多个类之间的所属关系,即子类默认继承父类的所有属性和方法
注:所有类默认继承object类,object类是顶级类和基类,其他子类叫做派生类
2.单继承:一个类只继承一个父类
3.多继承:一个类同时继承了多个父类
4.子类重写父类同名方法和属性
注:子类和父类具有同名属性和方法,默认使用子类的同名属性和方法
5.子类调用父类的同名方法和属性
6.多层继承
7.super()调用父类方法
注:使用super()可以自动查找父类,调用顺序遵循__mro__类属性的顺序,比较适合单继承使用

四、私有权限
1.定义私有属性和方法:在属性和方法名前面加上两个下划线
注:私有属性和私有方法只能在类里面访问和修改
2.获取和修改私有属性
定义函数名get_xx用来获取私有属性
定义set_xx用来修改私有属性值

五、面向对象三大特性:封装、继承、多态
1.多态:一类事物有多种形态(一个抽象类有多个子类,因而多态的概念依赖于继承),是一种使用对象的方式,子类重写父类方法,调用不同子类对象的相同父类方法,可以产生不同的执行结果。
2.类属性:类对象所拥有的属性,它被该类的所有实例对象所共有,可以使用类对象和实例对象访问。
修改类属性:类属性只能通过类对象修改,不能通过实例对象修改。若通过实例对象修改属性,表示的是创建了一个实例属性。
3.类方法:需要用装饰器@classmethod来识别其为类方法,第一个参数必须是类对象,一般以cls作为第一个参数。
4.静态方法:需要通过装饰器@staticmethod来修饰,不需要传递类对象好人实例对象,能通过实例对象和类对象访问。
使用场景:方法中不需要实例对象和类对象时,取消不需要参数传递,有利于减少不必要的内存占用和性能消耗。

六、模块和包
1.导入模块
import 模块名
from 模块名 import 功能名
from 模块名 import *
import 模块名 as 别名
from 模块名 import 功能名 as 别名

2.制作模块

3.__all__:一个模块文件中有__all__变量,使用from 模块名 import *导入时,只能导入这个列表中的元素。

4.包
导入包:
import 包名.模块名
包名.模块名.目标

from 包名 import*
模块名.目标

注:在__int__.py文件中添加__all__=[],控制允许导入的模块列表

七、异常
异常语法:
try:
   可能发生错误的代码
except:
   如果出现异常执行的代码
else:
   没有异常执行的代码
finally:
   无论是否异常都有执行的代码


捕获异常
except 异常类型:
   代码
except 异常类型 as xx:
   代码     


自定义异常

#1.自定义异常类
class 异常类类名(Exception):
   代码
   #设置抛出异常的描述信息
   def __str__(self):
     return...
#2.抛出异常
raise 异常类名()
#捕获异常
except Exception...
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值