news 2026/3/5 16:33:36

异常处理-面向对象思想的了解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
异常处理-面向对象思想的了解

一. 异常处理

在代码的编写运行时,常常遇到错误后,代码针对错误报错并在错误出终止,为了能让代码‘一镜到底’,不因为某一功能的错误而让程序卡壳,通常可以在认为出错的地方用try-except包围起来

理解程序中的错误一般分为两种,编译错误,运行错误

异常处理是面向运行时错误的 指的是在程序的运行中代码如果出现了bug,那么它会终止后面的程序 这个时候就需要异常处理

try: # 可能出错的代码 pass except Exception as e: # 异常处理 pass else: # 无异常时执行 pass finally: # 无论是否有异常都会执行(常用于资源释放) pass

1.1 异常处理具体案例

# try:可能出现错误的代码块 try: num1 = int(input('请输入数1:')) num2 = int(input('请输入数2:')) count = num1 / num2 # 同时写多个except,属于异常处理的分级捕获 print(f'当前结果是:{int(count)}') # Exception:当前的父类异常一定要放在最末尾 except (ValueError,ZeroDivisionError ) as e: # 子异常 print(e) except Exception as e: # 异常的父类类型(捕获所有错误) print('其他异常') else: # 当程序没有出现仍和异常时,会执行代码块 print('没毛病') finally: # 应用场景:关闭数据连接,进程 线程 协程释放资源 print('释放')

1.2 异常常见的类型

  • ValueError: 值无效(如int('abc'))
  • ZeroDivisionError: 除以0的数学运算
  • KeyError: 字典中访问不存在的键
  • IndexError: 序列索引超出范围(如列表越界)
  • TypeError: 操作或函数传入不兼容的类型
  • ......

二. 面向对象的思维

2.1 面向对象与过程

什么是面向过程?

自顶向下,逐步细化!简而言之就是根据过程一步一步的往下写。
比如:如果某一个步骤功能的难度较大,可以将该步骤再次细化为若干个子步骤,以此类推,一直到结尾并得到我们想要的结果。

什么是面向对象?

将功能理解成实体,实体中有相对应的类型和属性
可以看做是一个一个的实体在发挥其各自的“功能”(能力)并在内部进行协调有序的调用过程!

2.1.1面向对象与面向过程二者的区别?

面向过程和面向对象的区别

  1. 都可以实现代码重用和模块化编程,面向对象的模块化更深,数据也更封闭和安全
  2. 面向对象的思维方式更加贴近现实生活,更容易解决⼤型的复杂的业务逻辑
  3. 从前期开发的角度来看,面向对象比面向过程要更复杂,但是从维护和扩展的⻆度来看,面向象要远比面向过程简单!
  4. 面向过程的代码执行效率比面向对象高

2.2类及类对象的简单使用

在Python中,采用类(class)来生产对象,用类来规定对象的属性和方法!也就是说,在Python
中,要想得到对象,必须先有类!

2.2.1 类的定义

具体语法结构如下

class 类名: # 属性 # 方法

案例

class QQ: def __init__(self,name,gender,age): # __init__: 构造方法(在类进行实例化的过程中,默认会调用此方法) self.name = name # 默认不写构造方法则会调用隐式构造 self.gender = gender # self:指的是当前实例对象 --->也可以将其理解为this指针 self.age = age # 构造方法:是一个特殊方法,在创建对象时调用,用于初始化对象属性 def bahavior(self): print(f'{self.name}要吃鱼了') def huashui(self): print(f'{self.name}要划水') def set(self,name): self.name = name
2.2.2 类对象的使用

类的实例化就是通过得到对象
类只是对象的一种规范,类本身基本上什么都做不了,必须利用类得到对象,这个过程就叫作类的实例化!

基本语法
对象名 = 类名()

在其他的编程语言中,类的实例化一般是通过new关键字实例化生成的,但是在Python中,我们不需要new关键字,只需要类名+()括号就代表类的实例。

具体案例

class QQ: def __init__(self,name,gender,age): # __init__: 构造方法(在类进行实例化的过程中,默认会调用此方法) self.name = name # 默认不写构造方法则会调用隐式构造 self.gender = gender # self:指的是当前实例对象 --->也可以将其理解为this指针 self.age = age # 构造方法:是一个特殊方法,在创建对象时调用,用于初始化对象属性 def bahavior(self): print(f'{self.name}要吃鱼了') def huashui(self): print(f'{self.name}要划水') def set(self,name): self.name = name qq = QQ('小牟','雄',5) # 实例化 qq.huashui() # 使用方法 qq.bahavior() print(qq.name) qq.set('小忙') print(qq.name)

三. 总结

3.1 异常处理基本概念

  • 目的:防止程序因错误而中断执行
  • 适用场景:运行时错误处理
  • 核心思想:让代码能够"一镜到底"继续执行

3.2 常见异常类型

  • ValueError:值无效转换
  • ZeroDivisionError:除零错误
  • KeyError:字典键不存在
  • IndexError:序列索引越界
  • TypeError:类型不匹配

3.3 类的定义与使用

  • 类定义:使用 class 关键字定义模板
  • 构造方法:init 方法用于初始化对象属性
  • 实例化:通过 类名() 创建对象
  • self参数:指向当前实例对象

3.4 核心要点

  • 类是对象的规范,对象是类的实例
  • 面向对象更贴近现实逻辑,适合复杂业务场景
  • 异常处理与面向对象结合使用,提高程序健壮性
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/3 13:18:11

飞桨模型部署提速

💓 博客主页:借口的CSDN主页 ⏩ 文章专栏:《热点资讯》 AI模型部署提速:技术革新与能效优化的双轮驱动目录AI模型部署提速:技术革新与能效优化的双轮驱动 引言:部署瓶颈与提速的紧迫性 一、当前部署提速的成…

作者头像 李华
网站建设 2026/3/3 19:50:06

【大数据毕设全套源码+文档】基于Python的动漫影视数据分析和可视化设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/3/4 4:44:08

对当前大模型的作用的重新思考

大模型开启了机器的“统计智能”时代,但真正完备的机器智能,必须是多种智能范式的协同融合。让我们系统地解构这个判断。一、大模型的本质贡献与固有边界大模型带来了什么?1. 模式识别的革命:以前所未有的规模,实现了对…

作者头像 李华
网站建设 2026/3/4 15:34:51

Pytest自动化测试执行环境切换的两种解决方案

🍅 点击文末小卡片 ,免费获取软件测试全套资料,资料在手,涨薪更快 一、痛点分析在实际企业的项目中,自动化测试的代码往往需要在不同的环境中进行切换,比如多套测试环境、预上线环境、UAT环境、线上环境等…

作者头像 李华
网站建设 2026/3/5 14:52:46

“人类心智制定和解决复杂问题的能力,与在现实世界中实现客观理性行为所需处理的问题规模相比,显得极为有限。” — 赫伯特·A·西蒙(Herbert A. Simon)

“人类心智制定和解决复杂问题的能力,与在现实世界中实现客观理性行为所需处理的问题规模相比,显得极为有限。” — 赫伯特A西蒙(Herbert A. Simon) 文章目录 “人类心智制定和解决复杂问题的能力,与在现实世界中实现客观理性行为所需处理的问题规模相比,显得极为有限。”…

作者头像 李华
网站建设 2026/3/4 15:34:47

数据库性能优化:表结构的优化(从基础设计到分库分表)

数据库性能优化:表结构的优化(从基础设计到分库分表) 一、表结构优化的核心思路与具体方法 数据库表结构优化的核心目标是:减少数据冗余、提升查询效率、降低维护成本、适配业务增长。 1. 基础设计:遵循范式&#xff0…

作者头像 李华