Python面向对象编程超详细解析|类与对象、属性方法、构造方法、四大特性(零基础看懂)

发布时间:2026/9/21 10:00:22

Python面向对象编程超详细解析|类与对象、属性方法、构造方法、四大特性(零基础看懂) 一、什么是面向对象1.1 面向过程 VS 面向对象面向过程关注步骤、流程按照代码顺序一步步执行适合简单小程序。面向对象(OOP)关注事物、实体把现实事物抽象成程序中的类和对象适合大型项目、复杂业务。Python是纯面向对象语言字符串、列表、数字、函数全部都是对象。1.2 类和对象的关系核心口诀类是模板对象是实例类Class抽象模板描述一类事物的共同特征和行为对象Object根据模板创建的具体实体拥有自己独立的数据举例类 人类有姓名、年龄、会说话、会走路对象 张三、李四、王五具体的某一个人二、类的定义与对象创建2.1 定义类语法class 类名: # 属性特征 # 方法行为规范类名大驼峰命名法首字母大写2.2 最简案例创建学生类# 1. 定义类模板 class Student: # 方法 def study(self): print(学生正在学习...) # 2. 创建对象实例化 stu1 Student() stu2 Student() # 3. 对象调用方法 stu1.study() stu2.study()此时 stu1、stu2 是两个独立的对象。三、属性对象的特征数据属性就是事物的特征数据例如姓名、年龄、性别、价格、id。3.1 动态绑定属性class Student: def study(self): print(学生学习中) stu1 Student() # 给对象单独添加属性 stu1.name 张三 stu1.age 18 print(stu1.name) print(stu1.age)缺点每个对象需要手动赋值麻烦、不统一。四、构造方法 __init__重中之重__init__ 是类的初始化构造方法创建对象时自动触发执行用于统一初始化对象属性。4.1 核心特点创建对象时自动调用无需手动执行用于给对象初始化属性self代表当前对象本身4.2 标准完整案例class Student: # 构造方法初始化属性 def __init__(self, name, age): self.name name # 对象姓名 self.age age # 对象年龄 # 自定义方法 def show_info(self): print(f姓名{self.name}年龄{self.age}) # 创建对象并传参 stu1 Student(张三, 18) stu2 Student(李四, 20) stu1.show_info() stu2.show_info()4.3 self 到底是什么self 就是当前实例对象自己。 谁调用方法self 就指向谁。 作用区分不同对象的独有数据。五、类属性 和 对象属性5.1 对象属性写在 __init__ 中每个对象独有互不影响。5.2 类属性写在类内部、方法外部所有对象共享。class Student: # 类属性全局共享 school 北京大学 def __init__(self, name): # 对象属性自己独有 self.name name stu1 Student(张三) stu2 Student(李四) print(stu1.school) print(stu2.school)六、面向对象两大核心属性 方法属性描述事物「有什么」静态特征方法描述事物「能做什么」动态行为面向对象编程本质将数据和行为封装到一个类中。七、面向对象四大特性面试必背1. 封装将属性和方法打包到类中隐藏内部细节只暴露可用接口安全、简洁。2. 继承子类继承父类复用代码不用重复写重复逻辑。3. 多态不同子类调用同一个方法表现出不同效果提高代码灵活性。4. 抽象提取事物共同特征忽略细节提炼通用模板。八、面向过程 vs 面向对象总结面向过程注重过程、步骤、逻辑流水适合简单脚本面向对象注重实体、模块、封装复用适合大型项目九、全文总结类是模板对象是实例先定义类、再创建对象__init__构造方法用于初始化对象属性创建对象自动执行self 代表当前对象用来绑定对象独有数据属性描述特征方法描述行为面向对象四大特性封装、继承、多态、抽象。
延伸阅读

更多相关文章

2026/9/20 5:12:57

基于STM32F103的智能巡线小车:从硬件选型到PID算法全解析

1. 项目概述:从零打造一个会思考的“巡线工”几年前我第一次接触智能小车,感觉它就是个高级玩具。直到后来参与了一个自动化分拣线的辅助项目,看到那些沿着既定轨道精准运行的AGV小车,才意识到这背后“巡线”技术的普适性与价值。…

2026/9/20 23:23:14

Codex 每天能完成多少任务?用“开发任务密度”判断 Plus 还是 Pro

很多开发者判断 ChatGPT Plus 是否够用时,习惯统计每天使用了多少小时。但使用时间并不能准确反映实际强度。有人每天打开 ChatGPT 四五个小时,主要用于查询资料、解释代码和整理文档,任务压力并不高;也有人每天只集中使用一小时&…

2026/9/21 3:28:31

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/21 3:33:19

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/21 0:02:23

OpenResearch:构建可复现的开放式研究工作流

第一次看到“OpenResearch”这个名字,我脑子里冒出的不是某个具体软件,而更像一种研究方式的宣言:开放、可复现、可验证。这三件事放在一起,其实比大多数人想象中难得多。过去几年我一直在折腾自己的研究工作流,从纯纸…

2026/9/20 4:54:47

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/20 5:01:23

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/20 5:09:33

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

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

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

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