发布时间:2026/8/1 3:05:05
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/8/1 3:05:05

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

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

2026/8/1 4:05:08

AI大模型实战:从Prompt到Agent与RAG的完整开发指南

1. 先搞清楚这套课程到底解决什么问题如果你正在看AI大模型的入门资料,大概率会遇到几个典型困惑:一是资料太零散,学完Prompt不知道怎么接Agent;二是很多教程只讲概念,不告诉你本地环境怎么配、代码怎么调;…

2026/8/1 4:05:08

GLM-5.2开源大模型:从长上下文理解到实用代码生成的工程实践

1. 项目概述:GLM-5.2的发布意味着什么?智谱AI这次发布的GLM-5.2,在圈内可以说是扔下了一颗不大不小的“震撼弹”。如果你只是把它看作一次常规的版本迭代,那可能就错过了重点。从我实际体验和拆解来看,这次更新的核心信…

2026/8/1 4:05:08

欧普触摸台灯MT002CH-8DX触摸失灵故障维修全流程解析

最近在维修家里的欧普台灯时,遇到了一个典型问题:触摸感应完全失灵,按任何按键都没反应,型号是MT002CH-8DX。这种智能台灯用久了,触摸失灵其实是个常见故障,但很多人第一反应就是"完了,得换…

2026/8/1 4:05:08

K8s StatefulSet 持久化存储:PV 绑定、扩容与快照备份

K8s StatefulSet 持久化存储:PV 绑定、扩容与快照备份 场景痛点 MySQL跑在StatefulSet上。Pod重建后数据丢了——PVC绑定到了一个被回收的PV。Redis集群扩容,新增Pod的PVC找不到合适的PV,Pending状态卡住3小时。凌晨数据库误操作&#xff0…

2026/8/1 4:05:08

SpringBoot+Seata+Nacos实现电商分布式事务高可用方案

1. 项目概述在电商系统开发中,订单创建与库存扣减的一致性问题是每个开发者都会遇到的经典分布式事务场景。我最近在一个日订单量超过10万的电商平台项目中,采用SpringBootSeataNacos的技术栈实现了这一需求,实测在高并发场景下事务成功率稳定…

2026/8/1 4:00:08

知网与维普AIGC检测机制对比及学术查重实战指南

1. 学术查重平台AIGC检测功能深度对比去年帮学弟修改毕业论文时,我同时使用了知网和维普的AIGC检测功能,结果两份报告竟有12%的差异率。这种差异在学术圈其实很常见——去年某高校抽查的86篇论文中,使用不同平台检测的结果差异超过10%的占比达…

2026/7/29 22:32:30

PDF合并与动态水印的工程化方案:2026国内免费工具实测对比

一、背景与测试方案 在实际项目交付中,PDF文件合并与版权保护水印的叠加是一个高频但容易被低估的技术需求。典型的处理链路涉及:多源PDF的文件流合并、页面级水印渲染(含透明度混合与图层叠加)、输出文件体积控制。看似简单的操作…

2026/8/1 0:03:49

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/1 0:03:49

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/1 0:03:49

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…

2026/8/1 0:03:49

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/1 0:03:49

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/1 0:03:49

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…