Python面向对象编程:类与实例全解

发布时间:2026/11/13 7:27:08

Python面向对象编程:类与实例全解 摘要本文从面向过程与面向对象的对比出发深入讲解 Python 中类与实例的核心概念包括类定义、初始化函数、属性和方法封装并通过点坐标类和绘画小案例带你快速上手面向对象编程。1. 面向过程 vs 面向对象在学习类之前先理解两种编程思维的区别面向过程侧重功能实现代码按步骤堆叠典型代表是 C 语言。面向对象侧重设计通过类与实例的相互调用来实现功能典型代表是 Java、Python。简单来说面向过程关注“怎么做”面向对象关注“谁来做”。Python 作为一门面向对象语言一切皆对象理解类和实例是掌握 Python 的关键一步。2. 类与实例的基本概念在 Python 中万物皆对象。一个整数、一个字符串本质上都是某个类的实例# 整数 10 本质上是 int 类的实例 num 10 print(num, type(num)) 通过 int 类显式创建实例 num2 int(10) print(num2, type(num2)) 字符串同理是 str 类的实例 text hello print(text, type(text)) 列表是 list 类的实例 items [1, 2, 3] print(items, type(items))运行以上代码会发现a 10和a int(10)的效果完全相同。这是因为 Python 中int、str、list等都是内置的类我们创建的变量就是这些类的实例。3. 自定义类以 Person 为例Python 允许我们使用class关键字定义自己的类型# 定义一个自定义类型 Book class Book: 书籍类型 创建两个 Book 类型的实例 book1 Book() book2 Book() book1 是 main 模块下的 Book 类型 print(book1, type(book1)) print(book2, type(book2)) 查看类的名称、文档字符串和成员 print(Book.name, Book.doc, dir(Book))这里有两个关键概念类是抽象的模板用来封装数据和数据的相关操作。实例是类的具体表现每个实例拥有自己独立的数据。4. 初始化函数与属性为了让实例在创建时就携带数据Python 提供了魔法函数格式为__函数名__其中最重要的一项是__init__初始化函数class Student: def __init__(self, name, score): print(初始化函数执行了, id(self)) # 给实例绑定数据 self.name name self.score score def get_name(self): return self.name def set_name(self, name): self.name name def get_score(self): return self.score def set_score(self, score): self.score score 类内的 self 完全等同于类外的实例名 执行类就是执行类的初始化函数 s1 Student(小明, 90) print(id(s1), s1, s1.name, s1.score) s1.set_name(小红) print(s1.name, s1.get_name()) s1.set_score(95) print(s1.get_score()) s2 Student(小刚, 88) print(id(s2), s2, s2.name, s2.score) s2.set_name(小丽) print(s2.name, s2.get_name()) s2.set_score(92) print(s2.get_score())理解要点self代表当前实例本身在类内部通过self.属性名来绑定数据。__init__在实例创建时自动调用不需要显式调用。数据封装在实例中每个实例的name、age互不影响。5. 封装一个点坐标类下面将以上知识综合起来封装一个二维平面上的点坐标类并计算两点之间的距离# 封装一个矩形类宽、高 class Rectangle: def __init__(self, width, height): self.width width self.height height def get_width(self): return self.width def get_height(self): return self.height def area(self): return self.width * self.height 创建两个矩形实例 r1 Rectangle(10, 20) r2 Rectangle(30, 40) 计算面积 print(r1.area()) print(r2.area())通过Point类的封装点的坐标数据和获取坐标的操作被绑定在一起代码更清晰、更易维护。6. 绘画小案例随机点连线最后结合 Python 的turtle模块用类来绘制多个随机点之间的连线把面向对象思维落地为可视化效果import random import turtle class Draw: def init(self, points): self.points points def draw_between_points(self): turtle.up() for i in range(len(self.points)): for j in range(i 1, len(self.points)): turtle.goto(self.points[i].get_x(), self.points[i].get_y()) turtle.down() turtle.goto(self.points[j].get_x(), self.points[j].get_y()) turtle.up() turtle.mainloop() 随机生成 3 个矩形中心点并连线 points [Rectangle(random.randint(-200, 200), random.randint(-200, 200)) for i in range(3)] draw Draw(points) draw.draw_between_points()这个案例展示了面向对象的典型用法Point类专注于点的数据和行为Draw类专注于绘图逻辑两个类通过实例相互调用各自职责清晰。7. 总结本文从面向过程和面向对象的对比入手逐步讲解了 Python 中类的定义、实例的创建、初始化函数__init__的作用以及数据封装和获取方法。通过点坐标类和绘画小案例你将感受到面向对象编程带来的代码组织优势。掌握了类和实例就能更好地理解 Python 生态中各种第三方库的设计思路也为后续学习继承、多态等高级特性打下坚实基础。
延伸阅读

更多相关文章

2026/11/13 11:15:17

CSDN浏览器助手:开发者效率工具,全局搜索与智能工作流实战

1. 为什么你的浏览器总感觉“差口气”?作为一个每天要在浏览器里泡上十几个小时的开发者,我太懂那种感觉了:打开几十个标签页后,内存占用飙升,电脑风扇开始哀嚎;想快速找到昨天看过的某个技术文章&#xff…

2026/11/13 20:07:25

电工证怕考不过白交培训费?洛科电工证通过率揭秘全在这

电工证怕考不过白交培训费?洛科电工证通过率揭秘全在这 你是不是也担心,花了几千块培训费,结果考试还是不过,钱打水漂?特别是想考【洛科电工证】的人,心里总有个疙瘩——**这个证真的好考吗?通过率有多高?**别急,今天就带你揭开【洛科电工证】的…

2026/11/13 20:07:25

特种作业操作证在哪领网上查询最全指南

特种作业操作证在哪领网上查询最全指南 你还在为没有特种作业操作证而发愁?找工作、上岗、接工程都卡在了这一步,特种作业操作证在哪领成了你最关心的问题。网上查询流程复杂、材料不全、办理地点不明,这些都可能让你错过机会。今天就给你讲清楚,特种作业…

2026/11/13 20:07:25

孙书祥电工证网上查询怎么查?学历不高怕报不上名?真相在这

孙书祥电工证网上查询怎么查?学历不高怕报不上名?真相在这 你是不是也担心自己学历不高,考不了电工证?其实, 孙书祥电工证 的报考条件并不像你想的那么高门槛,很多人在备考之前就因为网上查不到准确信息而放弃。今天我就从实战角度,把…

2026/11/13 20:07:25

沭阳考电工证在哪里考 全国通用证书怎么考更稳妥

沭阳考电工证在哪里考 全国通用证书怎么考更稳妥 你是不是正在找工作,却卡在没有电工证这一步?别急,这可能是你进入电工行业的第一步,也是最重要的一步。 沭阳考电工证在哪里考…

2026/11/13 20:07:25

通州建校电工证查询怎么走?官方报名入口全解析

通州建校电工证查询怎么走?官方报名入口全解析 之前考的证在外省能不能转过来?这可能是很多持证人最关心的问题。特别是像漯河这样的地级市,不少人在外省工作多年,手里握着高压电工证、低压电工证,但因为跨省转介的问题,很多人的证书被“闲置”了。其实…

2026/11/13 20:02:25

东莞电工作业协会怎么报名,学历不高也能拿下低压电工证?

东莞电工作业协会怎么报名,学历不高也能拿下低压电工证? 你是不是也担心学历不高,考不了电工证?别急,东莞电工作业协会的报名门槛其实没有你想的那么高。很多人因为学历问题犹豫不决,但其实只要符合条件,哪怕是初中毕业,也能报名低压电工证。下面我从…

2026/11/12 20:35:13

电工证丢失还能补吗?千万别踩坑,丢了证等于失业

电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。…

2026/11/13 0:01:06

办上海高压电工证良心建议:别被中介坑了,自己看这篇就够了

办上海高压电工证良心建议:别被中介坑了,自己看这篇就够了 你是不是也像我一样,第一次听说“高压电工证”这个名词,就感觉一头雾水?其实很多人都跟我一样,不知道去哪报名、怕被中介坑,结果花了冤枉钱还考不上。今天我就从一个在商丘培训过的学员角度,…

2026/11/13 0:01:06

黎里考电工证在哪里值不值得考

黎里考电工证在哪里值不值得考 之前考的证在外省能不能转过来?这是很多在外地工作、准备回老家发展的朋友最关心的问题。特别是在黎里地区,很多从事电力相关工作的朋友,都面临这样一个难题: 外省的电工证能否在本地使用?值不值得考?…

2026/11/13 0:01:06

毕节哪里考电工证 怎么报名学历不高也能上手

毕节哪里考电工证 怎么报名学历不高也能上手 你是不是也和我一样,学历不高,想着考个电工证,但又担心自己条件不够,怕报不上名?其实不然,只要符合条件,学历不高也能考电工证。今天就来聊聊【毕节哪里考电工证】这个问题,还有怎么报名,让你一步到位不…

2026/11/12 22:10:13

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/13 12:14:39

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑