如何在实际开发中选择使用类变量和实例变量?
如何在实际开发中选择类变量、实例变量Python核心判断一句话属于这个「类本身」、所有实例共享的数据 → 用类变量属于「每一个对象自己」、每个实例独立的数据 → 用实例变量一、先回顾内存特点选择的底层依据类变量存储在类对象中所有实例共用同一份内存实例读取时先找实例命名空间找不到再去类里面找。 ⚠️陷阱如果用实例.类变量 xxx赋值会直接新建实例变量不会修改原始类变量。实例变量存储在各个实例各自的命名空间每个对象独立一份内存互不干扰。二、适用场景✅ 选【类变量】的场景所有实例共用的常量、固定配置class User: # 所有人共享不会随实例变化 MAX_AGE 120 TABLE_NAME user_table统计类全局状态实例之间需要共享计数class User: count 0 # 全局计数器所有实例共享 def __init__(self, name): self.name name User.count 1默认值只读场景注意可变对象不要放类变量list/dict会被所有实例共享篡改# ❌ 错误共享可变对象 class A: data [] a1 A() a2 A() a1.data.append(1) print(a2.data) # [1]意外污染类变量适合只读共享如果是可变数据尽量放到实例__init__里。✅ 选【实例变量】的场景绝大多数业务场景每个对象独有的属性用户名、id、手机号、订单金额每个实例不一样class User: def __init__(self, name, uid): self.name name # 实例独有 self.uid uid # 实例独有实例生命周期内会独立变化的数据对象之间互不影响需要封装、每个对象单独维护的状态三、快速决策判断清单开发时直接对照属性是否每个实例都不一样→实例变量属性是否全类统一、所有对象共用→类变量这个属性是可变类型 (list/dict)尽量实例变量需求修改 A 实例会不会影响 B 实例希望 A 修改B 跟着变 → 类变量mp.panpaimx.com/blog/9kLm2QpX7a.htmlmp.panpaimx.com/blog/Zx4Tn8Vr1B.htmlmp.panpaimx.com/blog/Qw7Yh3Ns5D.htmlmp.panpaimx.com/blog/Mc2Jv9Kp6E.htmlmp.panpaimx.com/blog/Rt8Bn4Xz0F.htmlmp.panpaimx.com/blog/Hg5Lp1Wq7G.htmlmp.panpaimx.com/blog/Uv3Dm6Yr2H.htmlmp.panpaimx.com/blog/Pa9Kc4Nt8J.htmlmp.panpaimx.com/blog/Se2Qx7Vb5K.htmlbbs.panpaimx.com/blog/Fn6Wm1Zp3L.htmlbbs.panpaimx.com/blog/Yd4Hr9Cv2M.htmlbbs.panpaimx.com/blog/Jk7Tq3Bs8N.htmlbbs.panpaimx.com/blog/Ol1Pm5Xw6P.htmlbbs.panpaimx.com/blog/Bg8Nc2Vr4Q.htmlbbs.panpaimx.com/blog/Xm5Kt7Yd1R.htmlbbs.panpaimx.com/blog/Cv9Qp3Ln6S.htmlbbs.panpaimx.com/blog/Zr2Wm8Hx4T.htmlbbs.panpaimx.com/blog/Nk6Jd1Vp9U.htmlbbs.panpaimx.com/blog/Lq4Yt7Bc2V.htmlmp.panpaimx.com/blog/Wp8Rm3Nx5W.htmlmp.panpaimx.com/blog/Td1Kv6Qs9X.htmlmp.panpaimx.com/blog/Hx5Pm2Zr7Y.htmlmp.panpaimx.com/blog/Gc9Bn4Wt1Z.htmlmp.panpaimx.com/blog/Vr3Lq8Jd6A.htmlmp.panpaimx.com/blog/Mp7Yx2Kc5B.htmlmp.panpaimx.com/blog/Ks4Wm9Nv3C.htmlmp.panpaimx.com/blog/Qn1Rt6Bp8D.htmlmp.panpaimx.com/blog/Dz5Jv2Xm7E.htmlmp.panpaimx.com/blog/Sb9Lq4Hr1F.htmlmp.panpaimx.com/blog/Yt3Pm8Kx6G.htmlmp.panpaimx.com/blog/Rc7Wn1Vd4H.htmlmp.panpaimx.com/blog/Bp2Qx9Lm5J.htmlmp.panpaimx.com/blog/Nv6Tr3Yc8K.htmlmp.panpaimx.com/blog/Lm1Jd7Wp2L.htmlmp.panpaimx.com/blog/Xq5Kv9Bn4M.htmlmp.panpaimx.com/blog/Ct8Rm2Hx7N.htmlmp.panpaimx.com/blog/Zp3Yq6Ld1P.htmlmp.panpaimx.com/blog/Gv9Wm4Nc5Q.htmlmp.panpaimx.com/blog/Hk2Jx7Rt8R.htmlmp.panpaimx.com/blog/Md6Pq1Bv3S.htmlmp.panpaimx.com/blog/Tn8Lm5Wx2T.htmlmp.panpaimx.com/blog/Qr4Yp9Kc7U.htmlmp.panpaimx.com/blog/Vx1Jv6Nd3V.htmlmp.panpaimx.com/blog/Kp7Wm2Ht9W.htmlmp.panpaimx.com/blog/Bc5Rq8Lx4X.htmlmp.panpaimx.com/blog/Nm9Yd3Pv1Y.htmlmp.panpaimx.com/blog/Lt2Kx7Bc6Z.htmlmp.panpaimx.com/blog/Xv8Qm4Nr5A.htmlmp.panpaimx.com/blog/Cp1Jd9Wt3B.htmlmp.panpaimx.com/blog/Zk6Lq2Yx8C.htmlmp.panpaimx.com/blog/Gr3Pm7Vc1D.htmlmp.panpaimx.com/blog/Hx9Bn5Kd4E.htmlmp.panpaimx.com/blog/Mv2Tq8Lm6F.htmlmp.panpaimx.com/blog/Tc7Yp1Rx3G.htmlmp.panpaimx.com/blog/Qm4Jv9Wd5H.htmlmp.panpaimx.com/blog/Vp8Km2Nx7J.htmlmp.panpaimx.com/blog/Kd1Lq6Bt9K.htmlmp.panpaimx.com/blog/Bx5Rm3Yc2L.htmlmp.panpaimx.com/blog/Nq9Pv7Hd4M.htmlmp.panpaimx.com/blog/Lm3Jx1Wt6N.htmlmp.panpaimx.com/blog/Xc8Qm5Bv2P.htmlmp.panpaimx.com/blog/Cv4Kd9Nr7Q.htmlmp.panpaimx.com/blog/Zp1Yq6Lx3R.htmlmp.panpaimx.com/blog/Gt7Wm2Vc9S.htmlmp.panpaimx.com/blog/Hk5Jv8Rd1T.htmlmp.panpaimx.com/blog/Mx9Pq3Bn6U.htmlmp.panpaimx.com/blog/Tm2Ld7Wv4V.htmlmp.panpaimx.com/blog/Qc6Yp1Kx8W.htmlmp.panpaimx.com/blog/Vr3Jm9Nt5X.htmlmp.panpaimx.com/blog/Kp8Qv4Bd2Y.htmlmp.panpaimx.com/blog/Bm1Lx6Wc7Z.htmlmp.panpaimx.com/blog/Nv5Rd9Yp3A.htmlmp.panpaimx.com/blog/Lq2Km7Jx8B.htmlmp.panpaimx.com/blog/Xt9Pm4Vc1C.htmlmp.panpaimx.com/blog/Cd3Qv8Bn6D.htmlmp.panpaimx.com/blog/Zx7Lp2Yr5E.htmlmp.panpaimx.com/blog/Gm1Jd6Wv9F.htmlmp.panpaimx.com/blog/Hv4Kq9Nx2G.htmlmp.panpaimx.com/blog/Mp8Rm3Bc7H.htmlmp.panpaimx.com/blog/Tq1Yv5Ld4J.htmlmp.panpaimx.com/blog/Qx6Jm2Wt9K.htmlmp.panpaimx.com/blog/Vc3Pq7Rn1L.htmlmp.panpaimx.com/blog/Km9Ld4Bv6M.htmlmp.panpaimx.com/blog/Bp2Xv8Yc3N.htmlmp.panpaimx.com/blog/Nr5Qm1Jx7P.htmlmp.panpaimx.com/blog/Lv8Kd3Wt2Q.htmlmp.panpaimx.com/blog/Xm4Pq9Bc6R.htmlmp.panpaimx.com/blog/Ct1Rv7Lx5S.htmlmp.panpaimx.com/blog/Zp8Jm2Yd4T.htmlmp.panpaimx.com/blog/Gq3Kv6Nx9U.htmlmp.panpaimx.com/blog/Hm7Ld1Wc5V.htmlmp.panpaimx.com/blog/Mv4Pq8Bt2W.htmlmp.panpaimx.com/blog/Tr9Ym3Jx6X.htmlmp.panpaimx.com/blog/Qc2Kv7Ld1Y.htmlmp.panpaimx.com/blog/Vp6Rm4Nc8Z.htmlmp.panpaimx.com/blog/Kx1Jd9Wv3A.htmlmp.panpaimx.com/blog/Bm5Qq2Yt7B.htmlmp.panpaimx.com/blog/Nc8Lm4Hx1C.htmlmp.panpaimx.com/blog/Lv3Pq9Rd6D.htmlr7k2m9.panpaimx.comq3v8n1.panpaimx.comx9t4p6.panpaimx.coma2c7f5.panpaimx.comm8z3q4.panpaimx.comb6n1r9.panpaimx.comw4y7k2.panpaimx.comd9s3h8.panpaimx.comt5g2v7.panpaimx.comj8p4x1.panpaimx.comc3m9n6.panpaimx.comv7b2q5.panpaimx.comh1r8z3.panpaimx.coms6k4w9.panpaimx.comn2d7f5.panpaimx.come9q3m8.panpaimx.comu4x1p7.panpaimx.coml8v5c2.panpaimx.comy3n9r6.panpaimx.comp7m2k4.panpaimx.commp.panpaimx.com/blog/Xt7Km2Bc5E.html希望 A 修改B 不受影响 → 实例变量四、常见开发最佳实践常量全部大写放在类变量约定规范比如PAGE_SIZE 20实例属性统一在__init__初始化不要中途随意self.xxx 动态新增降低可读性尽量避免用实例去修改类变量修改类变量直接类名.变量继承场景子类可重写类变量实例变量天然隔离继承时不容易踩坑不要滥用类变量存业务数据业务实体属性优先实例变量五、对比小结表格类变量实例变量存储位置类命名空间全局一份各个实例独立命名空间共享性所有实例共享实例之间隔离适用常量、全局统计、类级配置对象自身属性、独立状态风险可变对象容易意外互相污染实例多的时候占用更多内存如果你需要我可以给你面试精简口述版本或者写一段综合练习代码测试你是否分清边界。

相关新闻

Superpowers:AI编程增强协议与本地化开发工作流

Superpowers:AI编程增强协议与本地化开发工作流

1. 项目概述:Superpowers 不是超能力,而是开发者工具链的“认知增强层”你最近在 GitHub、Hacker News 或国内技术社区刷到 “superpowers” 这个词,大概率不是漫威新片预告,而是一群工程师在讨论一个正在快速演进的开发范式——它…

2026/10/9 21:30:36 阅读更多 →
Unity新输入系统(Input System)迁移实践:从旧Input Manager到跨平台Action配置全指南

Unity新输入系统(Input System)迁移实践:从旧Input Manager到跨平台Action配置全指南

1. 为什么换乘新输入系统:旧Input Manager在双平台输入上的三宗罪Unity开发者群里每隔几天就会有人问一句:新输入系统(Input System)到底该怎么上手。我过去也一度被它整得很烦,装好包后人物不动、手柄没反应、UI点不了…

2026/10/11 6:52:48 阅读更多 →
Java原生Socket多人聊天系统:TCP连接+心跳保活+消息广播

Java原生Socket多人聊天系统:TCP连接+心跳保活+消息广播

简介:本资源是一个基于Java开发的简易多人聊天系统实现,面向计算机专业学生及初学者,聚焦学校场景下的师生即时通信需求,帮助学习者掌握网络编程、多线程处理与GUI开发等核心技能。压缩包为ZIP格式,共16个文件&#xf…

2026/10/9 13:21:03 阅读更多 →

最新新闻

【AI 和未来】工作(1)

【AI 和未来】工作(1)

原文链接:https://www.ibm.com/cn-zh/think/insights/ai-and-the-future-of-work 概述 人工智能融入职场是重大技术变革,开启人机协作时代。叠加全球技能短缺、后疫情远程办公、企业数据爆炸等背景,AI成为企业解决业务难题、打造个性化员工体…

2026/10/11 10:55:27 阅读更多 →
布谷鸟2012局域网聊天工具:原理、部署与避坑指南

布谷鸟2012局域网聊天工具:原理、部署与避坑指南

简介:布谷鸟2012是一款面向企业内部局域网的即时通讯与协作软件,主要解决团队日常沟通、文件传递和远程协助三大需求。软件内置文本聊天、群组讨论、文件传送、离线文件、远程协助、录音留言、消息签收、语音视频通话、共享文档、公告发布、MSN互通、视频…

2026/10/11 10:55:27 阅读更多 →
服务器板载G200e显卡驱动安装与排查:Linux与Windows实战指南

服务器板载G200e显卡驱动安装与排查:Linux与Windows实战指南

简介:Matrox G200e (ServerEngines) 驱动是面向惠普HP ML110 G6服务器板载显卡的驱动资源。G200e作为专为服务器设计的低功耗图形处理单元,承担服务器基本显示输出与远程管理界面呈现功能。该资源有效解决Windows系统下显卡无法识别、分辨率受限等问题&a…

2026/10/11 10:55:27 阅读更多 →
Oracle 10g 10.2.0.4 Windows Server 2008 R2 离线静默安装包

Oracle 10g 10.2.0.4 Windows Server 2008 R2 离线静默安装包

简介:本资源是Oracle 10g Release 2(10.2.0.4)面向Windows Vista与Windows Server 2008 x64平台的生产级数据库部署包,专为DBA及企业级数据库运维人员设计,解决64位Windows环境下Oracle数据库快速部署、配置复用与灾备…

2026/10/11 10:55:27 阅读更多 →
反爬虫大师:可复用网络爬取API服务的设计与实战拆解

反爬虫大师:可复用网络爬取API服务的设计与实战拆解

做爬虫这行十来年,我最大的体会是:反爬和爬取永远在互相拉扯。早年写个requests带上UA就能把数据拿回来,现在呢,网站动不动就上动态渲染、浏览器指纹、行为分析、滑块校验,甚至接口参数都是加密的。你真想稳定拿数据&a…

2026/10/11 10:55:27 阅读更多 →
实测不掺水!音频快剪神器深度测评,普通人剪辑效率提升80%

实测不掺水!音频快剪神器深度测评,普通人剪辑效率提升80%

做自媒体、剪短视频、做配音和播客的小伙伴,大概率都被音频剪辑折磨过:电脑专业软件操作繁琐、学习成本高,手机免费工具功能残缺,要么剪完音质翻车,要么处理速度巨慢,稍微复杂一点的人声分离、降噪就完全ho…

2026/10/11 10:54:26 阅读更多 →

日新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/11 0:00:27 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/11 0:00:27 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

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

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

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

2026/10/9 21:32:20 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

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

2026/10/10 10:38:42 阅读更多 →