当前位置: 首页 > news >正文

初始Python篇(10)—— 初识 类与对象

初始Python篇(10)—— 初识 类与对象
(专为零基础/转行/面试准备设计,2026 年最新版)

这是 Python 入门系列的最重要一篇,也是从“会写代码”到“会写工程代码”的分水岭。

1. 为什么需要类?(先说白话,让你一下子懂)

想象你要管理“学生”信息:

用变量写(最原始):

name1="张三"age1=18score1=95name2="李四"age2=19score2=88

→ 100 个学生就要写 300 行变量,太乱!

(Class)写(面向对象):

classStudent:pass# 后面会填内容s1=Student()# s1 就是一个“学生对象”s2=Student()# s2 是另一个独立的学生对象

一个类 = 一个“模板”,可以批量生产很多“对象”(实例)。

一句话总结

类(Class)是模板,对象(Object/Instance)是根据模板造出来的具体东西。

2. 类的基本写法(手敲 3 遍记住)

classStudent:# 类名建议大驼峰(CamelCase)"""这是一个学生类"""# 类文档字符串(docstring)# 类属性(所有学生共有的)school="第一中学"# 属于类,不属于某个学生# 初始化方法(构造器)—— 对象出生时自动执行def__init__(self,name,age):# self 必须写在第一个参数self.name=name# 实例属性(每个学生自己有)self.age=age self.score=0# 默认值# 普通方法(实例方法)defstudy(self):print(f"{self.name}正在学习...")defexam(self,score):self.score=scoreprint(f"{self.name}考试得了{score}分")

3. 创建对象 + 使用对象(超级简单)

# 创建两个学生对象s1=Student("张三",18)s2=Student("李四",19)# 使用对象print(s1.name)# 张三print(s2.age)# 19print(s1.school)# 第一中学 (类属性,所有学生共享)s1.study()# 张三 正在学习...s2.exam(95)# 李四 考试得了 95 分print(s2.score)# 95

4. 核心概念图解(面试/理解必看)

类 Student(模板) ├── 类属性:school = "第一中学" ├── __init__(self, name, age) ← 构造器 ├── study(self) ← 实例方法 └── exam(self, score) 对象 s1(实例) ├── name = "张三" ├── age = 18 ├── score = 0 └── school(从类里找) 对象 s2(实例)完全独立

5. self 到底是什么?(最容易懵的地方)

  • self代表当前对象本身
  • 在类里面写方法时,必须把self写在第一个参数
  • 调用方法时不用手动传,Python 自动把对象传进去
# 调用时这样写:s1.study()# Python 自动变成:Student.study(s1)# 类里面这样定义:defstudy(self):print(self.name)# self 就是 s1

记住口诀“谁调用方法,self 就是谁”

6. 类属性 vs 实例属性(面试必问)

classStudent:school="第一中学"# 类属性def__init__(self,name):self.name=name# 实例属性s1=Student("张三")s2=Student("李四")print(s1.school)# 第一中学print(s2.school)# 第一中学Student.school="第二中学"# 修改类属性,所有对象都变!print(s1.school)# 第二中学print(s2.school)# 第二中学s1.school="第三中学"# 给 s1 新增实例属性(屏蔽类属性)print(s1.school)# 第三中学print(s2.school)# 第二中学(s2 仍然走类属性)

7. 魔法方法快速预览(以后会详细讲)

def__str__(self):returnf"学生:{self.name},年龄:{self.age}"print(s1)# 自动调用 __str__,输出更友好

8. 完整小练习(现在就敲!)

classDog:species="犬科"# 类属性def__init__(self,name,age):self.name=name self.age=age self.tricks=[]# 每只狗有自己的技能列表defteach(self,trick):self.tricks.append(trick)print(f"{self.name}学会了{trick}")defshow(self):print(f"{self.name}会:{self.tricks}")# 使用d1=Dog("旺财",3)d2=Dog("小黑",5)d1.teach("握手")d1.teach("打滚")d2.teach("汪汪叫")d1.show()d2.show()

总结:一句话记住本篇所有内容

类是模板,对象是实例;init是出生时执行的方法;self 代表当前对象;用 . 属性 来访问数据和行为。


本篇结束,你已经正式进入面向对象编程世界!

下一讲(初始Python篇 11)我将深入讲解:

  • 三大特性:封装、继承、多态
  • 私有属性(__xxx)
  • @property 装饰器
  • 类方法、静态方法
  • 继承与 super()

想现在就看下一讲吗?
或者我先给你出一套“类与对象” 专属练习题 + 面试真题(10 道)?

直接回复“下一讲”“练习题”即可~

继续加油!你已经比 80% 的 Python 初学者走得更远了!🚀

http://www.jsqmd.com/news/476606/

相关文章:

  • HTML5的结构、概述、优势
  • 基于Zabbix 6.4与Helm 3的Kubernetes 1.28集群监控实战指南
  • OpenClaw 生成测试用例
  • 前端工程化实践:前端项目打包命名策略全解析
  • 从对接构象到稳定轨迹:氧合血红素cpdI复合物Amber/Gromacs模拟全流程解析
  • Highcharts React v4.2.1 正式发布:更自然的React开发体验,更清晰的数据处理
  • 2026年性价比轿车托运服务商深度评测与选购指南 - 2026年企业推荐榜
  • No.905 S7-200 PLC和组态王组态温度PID控制加热 S7-200 PLC和组态王...
  • 2026年郑州黄金回收店深度测评:基于检测实力与资金安全的五维对比 - 品牌推荐
  • Windows 11 VBS与eNSP兼容性冲突:从原理到实战解决启动报错40
  • SQL优化新纪元:从索引策略到查询性能的全面提升
  • 推荐一个实用的网址导航站:jiafangbb.com
  • AI人机协同从前沿选题挖掘、智能写作工程、顶刊图表可视化、到精准选刊投稿与审稿博弈策略的一站式实践
  • 离散数学实战解析:命题公式类型判定与优化方法
  • openclaw v2026.3.11正式发布:安全强化、内核优化与跨平台体验全面升级
  • 现代密码学——第一章密码学基础
  • DeepSeek 与 Gemini:从架构到场景的深度技术选型指南
  • 使用 OpenClaw 时常见问题与解决方法:从安装到接入模型、飞书等工具的完整排查指南
  • Markdown 使用技巧大全:从入门到精通,一篇就够了
  • No.363 S7-200智能控制核心在船舶电站控制系统的应用与组态王软件的研究
  • OpenClaw引爆AI执行革命:低代码的下一个十年,从“拖拽“到“自主开发“
  • OpenClaw在windows中安装
  • 浏览器语音朗读插件:让文字“活”起来的前端黑科技
  • python+selenium 实现UI自动化框架
  • 工业现场的温度控制就像给锅炉装了个“智能体温计“,S7-200 PLC配组态王的组合特别适合中小型锅炉房。咱们直接上干货,先看个PLC端的温度采集程序
  • 双向rrt树路径规划MATLAB实现 双向rrt算法的三维路径规划 加入路径平滑处理 代码有详细注释
  • ARM数据处理指令(ARM处理器指令系统——ARM指令集初学,上篇)
  • 05-RAG 核心概念与向量存储:检索增强生成原理
  • 深度拆解 OpenClaw
  • 【异常】OpenClaw认证 Please carry the API secret key in the ‘Authorization‘ field of the request header