news 2026/9/1 7:47:40

Python面向对象基础与异常

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Python面向对象基础与异常

1.面向对象

1.1 面向对象基础

面向过程编程:把一个需求分解成一系列要执行的步骤,然后按照步骤依次执行这些任务(关注的是流程,步骤

适用场景:面向过程非常直接,适合简单,线性的任务

比如盖房子:

面向对象编程:关注的是哪个对象来帮我做这件事

  • 对象:可以理解为现实中具体的人/物在程序中的数字化身(万物皆对象),它把一个人/物的特征(属性)和功能(方法打包到一起,是面向对象编程的基本单元

类与对象:

类:描述的是一组具有相同属性和方法模板

对象:对象是类的实例,是基于类创造出来的(实例对象)

注意:对象是类创建出来的,创建对象的过程,也称为对象的实例化,一个类可以创建无数个对象

1.2 类与对象

定义类的语法如下:

  • 类名的命名规范:遵循大驼峰命名法,每个单词的首字母都是大写,单词之间没有分隔符,比如:UserInfo,UserAccount
  • _ _dict_ _:是 Python 中用户自定义类实例的一个特殊属性,用于以字典形式存储对象的属性

不推荐在创建对象时动态地为对象添加属性,因此主流使用:定义类时指定实例属性

说明:

  • 定义在类的外面的函数称之为函数,定义在类中的函数称之为方法
  • _ _inint_ _:初始化方法,对象创建后自动调用,主要用于设置对象的初始化状态(设置对象属性)
  • self :方法的第一个参数,表示当前创建的实例对象

小结:

1.3 实例方法

在类中定义实例方法时,定义语法与之前学习的函数定义的方式一致

注意:self 表示当前实例对象,在方法调用时无需传递

1.4 魔法方法

  • 魔法方法是指Python中提供的以双下划线_ _开头和结尾的特殊方法,用于定义类的特殊方法,比如:_ _init_ _
  • 魔法方法无需手动调用,Python会在合适的时机自动调用

直接使用对象名进行输出和比较时存在的问题如下:

小结:

1.5 实例属性与类属性

属性分为:

  • 实例属性:实例属性属于每个具体对象的属性,每个对象都是独立的。(各个对象特有的属性)
  • 类属性:类属性是属于类本身的属性,所有同类的实例对象共享(所有对象共有的属性)

说明:通过实例查找属性时,会先查找实例属性,实例属性不存在时,再进行查找类属性

2.异常

2.1 异常定义

异常(也称为BUG)就是程序运行过程中出现的错误,它会中断程序的正常执行流程

作用:

  • 保证数据,逻辑的正确性,避免程序执行混乱
  • 在开发阶段,尽量发现更多的问题,尽早解决问题,保障程序正常执行

基础异常类型:

异常说明报错示例
NameError访问未定义的变量名print(a),没有定义 a
TypeError数据类型不匹配,做了不支持的运算'abc' + 10len(123)
IndexError序列 (列表 / 元组 / 字符串)索引下标越界lst=[1,2]; lst[10]
KeyError字典访问不存在的 keyd={"a":1}; d["b"]
ValueError类型正确,但值内容非法int("python")float("abc")

2.2 异常处理方案

程序运行过程中出现异常,有两种处理方案:

1.不做处理:整个程序因为一个BUG,中段执行(之前编写的程序)

2.捕获异常:按照我们自己的处理方式,处理完异常,程序继续执行。(编写程序时,做好预案,出现异常,按预案处理)

2.3 异常的传递

异常传递就是异常在函数调用中层层上报的过程,直到有人处理它,或者程序崩溃

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/1 7:46:44

AI把驱动写得漂漂亮亮,现场一根毛刺就把它打回原形

AI把驱动写得漂漂亮亮,现场一根毛刺就把它打回原形实验室里,AI 写的驱动常让人有点飘。寄存器配齐了,注释整齐,编译一次过,板子也能起来。你看着屏幕,会生出一种错觉:是不是底层这关&#xff0c…

作者头像 李华
网站建设 2026/9/1 7:46:31

燃气灶猛火技术全解析:5.2kW聚能燃烧与铝炉头

咱们不搞虚的,直接看硬核参数与拆机级结构分析。这篇把 5.2kW 猛火、聚能燃烧、铝炉头、嵌入台式两用、安全熄火保护等概念一次讲透,配合安装实测、火力对比和排障手册,照着看就能懂。 1. 你家的燃气灶,真的选对了吗 很多人在装修…

作者头像 李华
网站建设 2026/9/1 7:46:13

Turnitin标记英文论文Conclusion为AI生成怎么办:助研君逐段改写实测

Turnitin标记英文论文Conclusion为AI生成怎么办:助研君逐段改写实测 在向国际期刊投稿或提交海外高校毕业论文时,很多留学生和科研工作者都会遭遇 Turnitin 的突击标红:Turnitin标记英文论文Conclusion为AI生成怎么办?整篇英文论…

作者头像 李华
网站建设 2026/9/1 7:45:56

动漫简笔画角色创作:如何用简单线条画出“任性”蓝豆包

有一段经历让我印象很深。我一度很爱看别人画“动漫简笔画”,尤其是一个看起来圆滚滚、蓝乎乎的角色,名字叫“任性的蓝豆包”。它姿态夸张、表情丰富,但线条又格外省,好像随手几笔就能完成。可等我真正拿起笔才发现,照…

作者头像 李华
网站建设 2026/9/1 7:45:53

- 《C# 泛型参数约束详解》

泛型的介绍 类型参数与约束类型参数 (Type Parameters)&#xff1a;即尖括号 <> 中的占位符&#xff0c;如 T。常见的命名约定是使用 T 或以 T 开头的描述性名称&#xff08;如 TKey, TValue&#xff09;。约束 (Constraints)&#xff1a;你可以对类型参数施加约束&#…

作者头像 李华
网站建设 2026/9/1 7:45:14

把B站和播客变成个人知识库?一条Obsidian自动化工作流搞定

我用 Obsidian 挺久了&#xff0c;双向链接、Graph View 那套我都很熟&#xff0c;自认为是个合格的笔记重度玩家。 但有个痛点一直绕不开&#xff1a;面对播客和视频&#xff0c;我特别无能为力。因为 Obsidian 再强&#xff0c;也得你先有文字才能记、才能连。音频和画面它在…

作者头像 李华