文章总结: 本文解析Python面向对象机制,阐明类本质是type实例对象。文章解释类体代码在定义时即时执行,分析类属性存储及实例访问的查找原理,指出实例属性可遮蔽类属性,帮助开发者深入理解底层逻辑。 综合评分: 80 文章分类: 其他
Python 面向对象编程——类对象、属性和方法
原创
Lino Lino
网络技术联盟站
2026年1月22日 18:00 江苏
各位同学,大家好!我是你们的 Python 讲师 Lino。
在 Python 中,很多人把类当成“语法结构”,但从解释器视角看,类本身就是一个对象。 只有理解这一点,你才能真正理解:
- 为什么可以通过类访问属性
- 为什么方法会自动绑定 self
- 为什么 classmethod 和 staticmethod 存在
类对象是什么?
先看最简单的代码:
class User: pass
验证两件事:
print(User) print(type(User))
输出类似:
结论非常明确:
类是 type 的实例,是一个对象。
既然是对象,就具备三个能力:
- 可以被引用
- 可以拥有属性
- 可以作为参数传递
类体代码:不是声明,而是执行
这是一个非常容易被忽略的点。
class Demo: print(“class body executing”) x = 10
当解释器读到 class Demo: 时,会立即执行类体代码:
class body executing
然后:
- 把执行过程中产生的名字
- 收集到类对象的命名空间中
验证:
print(Demo.dict.keys())
类属性:挂在类对象上的数据
class Config: timeout = 30
这里:
- timeout 是类属性
- 存放在 Config.__dict__
访问方式:
print(Config.timeout)
通过实例访问:
c = Config() print(c.timeout)
实例访问类属性,本质是“向上查找”,不是复制。
类属性与实例属性的遮蔽关系
class User: role = “guest”
u = User() print(u.role)
现在修改实例:
u.role = “admin”
再次输出:
print(u.role) print(User.role)
结果:
admin
`
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:网络技术联盟站 Lino Lino《Python 面向对象编程——类对象、属性和方法》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。











评论