news 2026/7/7 17:52:44

解析 Python 类里类变量的修改方式

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
解析 Python 类里类变量的修改方式

在 Python 类中,类变量是属于类本身的变量,所有实例共享同一内存空间。修改类变量的方式主要有两种:通过类名修改和通过实例修改,但两者的效果截然不同,需要重点区分。

1. 通过类名修改类变量(推荐)

通过类名直接修改类变量,会真正改变类变量的值,所有实例访问该变量时都会获取到更新后的值。

示例:

python

运行

class MyClass: class_var = "初始值" # 类变量 # 通过类名修改类变量 MyClass.class_var = "修改后的值" # 所有实例访问的都是修改后的值 obj1 = MyClass() obj2 = MyClass() print(obj1.class_var) # 输出:修改后的值 print(obj2.class_var) # 输出:修改后的值 print(MyClass.class_var) # 输出:修改后的值

2. 通过实例修改类变量(不推荐,易混淆)

通过实例修改类变量时,不会改变类本身的变量,而是会给该实例创建一个同名的实例变量,此后该实例访问该变量时,会优先使用自己的实例变量(屏蔽类变量),而其他实例和类本身访问的仍然是原来的类变量。

示例:

python

运行

class MyClass: class_var = "初始值" # 类变量 obj1 = MyClass() obj2 = MyClass() # 通过实例 obj1 "修改" 类变量(实际是创建实例变量) obj1.class_var = "obj1的实例变量" # 实例 obj1 访问的是自己的实例变量 print(obj1.class_var) # 输出:obj1的实例变量 # 实例 obj2 和类本身访问的仍是原来的类变量 print(obj2.class_var) # 输出:初始值 print(MyClass.class_var) # 输出:初始值

总结

  • 通过类名修改:会全局更新类变量,影响所有实例。
  • 通过实例修改:不会改变类变量,只会给该实例新增一个同名实例变量,仅影响当前实例。

实际开发中,建议始终通过类名修改类变量,避免通过实例修改导致的逻辑混淆。

https://avg.163.com/topic/detail/8126074
https://avg.163.com/topic/detail/8126272
https://avg.163.com/topic/detail/8126470
https://avg.163.com/topic/detail/8125935
https://avg.163.com/topic/detail/8126065
https://avg.163.com/topic/detail/8126263
https://avg.163.com/topic/detail/8126400
https://avg.163.com/topic/detail/8126466
https://avg.163.com/topic/detail/8125933
https://avg.163.com/topic/detail/8126049
https://avg.163.com/topic/detail/8126269
https://avg.163.com/topic/detail/8126404
https://avg.163.com/topic/detail/8126469
https://avg.163.com/topic/detail/8125931
https://avg.163.com/topic/detail/8126061
https://avg.163.com/topic/detail/8126265
https://avg.163.com/topic/detail/8126401
https://avg.163.com/topic/detail/8126465
https://avg.163.com/topic/detail/8125932
https://avg.163.com/topic/detail/8126397
https://avg.163.com/topic/detail/8126462
https://avg.163.com/topic/detail/8126054
https://avg.163.com/topic/detail/8126398
https://avg.163.com/topic/detail/8126464
https://avg.163.com/topic/detail/8126052
https://avg.163.com/topic/detail/8126258
https://avg.163.com/topic/detail/8126396
https://avg.163.com/topic/detail/8126461
https://avg.163.com/topic/detail/8125930
https://avg.163.com/topic/detail/8126045
https://avg.163.com/topic/detail/8126267
https://avg.163.com/topic/detail/8126402
https://avg.163.com/topic/detail/8126467
https://avg.163.com/topic/detail/8126261
https://avg.163.com/topic/detail/8126399
https://avg.163.com/topic/detail/8126468
https://avg.163.com/topic/detail/8125934
https://avg.163.com/topic/detail/8126050
https://avg.163.com/topic/detail/8126268
https://avg.163.com/topic/detail/8126463

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/5 17:43:38

使用Qwen2.5-7B训练自己的本地中文医疗大模型

第一版训练效果分析 数据质量问题(最主要原因): 如果你的训练数据大量来自**“在线问诊平台”(如好大夫、春雨医生等),这些数据里充斥着医生为了快速回复而使用的“万金油句式”**(例如:“建议去医院检查”、“这个不好说”、“可以观察一下”)。 模型学到了医生的“…

作者头像 李华
网站建设 2026/7/6 17:45:59

【独家实测数据】:Open-AutoGLM与MobiAgent在10类任务中的准确率表现

第一章:Open-AutoGLM 与 MobiAgent 执行准确率对比在轻量级自动化推理框架的评估中,Open-AutoGLM 与 MobiAgent 在多类任务场景下的执行准确率表现成为关键衡量指标。为实现公平比较,实验基于相同的测试数据集(包含10,000条自然语…

作者头像 李华
网站建设 2026/7/7 7:23:19

FaceFusion如何处理带有动态贴纸的原始素材?

FaceFusion如何处理带有动态贴纸的原始素材?在短视频与直播内容爆炸式增长的今天,用户上传的自拍视频早已不再“素颜”——兔子耳朵跳动、爱心光效闪烁、表情动画随脸变化,这些由AR引擎实时渲染的动态贴纸已成为社交表达的一部分。然而&#…

作者头像 李华
网站建设 2026/7/7 8:20:33

FaceFusion人脸替换在数字永生领域的伦理讨论

FaceFusion人脸替换在数字永生领域的伦理讨论 技术演进与现实冲击 当一段由AI驱动的“已故亲人”视频出现在家属面前,微笑着说出未曾说出口的告别语时,我们是否还能够清晰地区分这是慰藉还是欺骗?这不是科幻电影的情节,而是今天基…

作者头像 李华
网站建设 2026/7/7 7:39:38

Python基础练习6.九九乘法表

编码1:# 使用两层循环生成九九乘法表 for i in range(1, 10): # 外层循环控制行数(1到9)for j in range(1, i1): # 内层循环控制每行的列数(1到当前行数i)# 格式化输出乘法算式:结果左对齐占2位&…

作者头像 李华