文章总结: 本文解析Python面向对象中的class关键字与属性机制。class关键字负责创建类对象、执行类体并收集命名空间。属性分为类属性与实例属性,类属性存于类字典且实例共享,实例属性存于实例字典。掌握该底层机制对编写高质量代码至关重要。 综合评分: 82 文章分类: 安全开发,代码审计
Python 面向对象编程——属性和类关键字
原创
Lino
网络技术联盟站
2026年1月9日 18:00 江苏
各位同学,大家好!我是你们的 Python 讲师 Lino。
在 Python 的面向对象体系里,class 不是语法糖,属性也不是随便挂的变量。
如果你只把它们当成“能跑就行”,那么在规模稍微大一点的代码里,问题会迅速暴露。
这一节我们只做两件事:
- 把 class 这个关键字讲清楚
- 把“属性到底存在哪里、怎么查找”讲清楚
class 到底做了什么?
从解释器角度看,class 干了三件事:
- 创建一个新的类对象
- 执行类体代码
- 把类体中定义的名字,收集到类的命名空间
看一个最简单的例子:
class Demo: x = 10
def foo(self): return self.x
你可以验证:
print(Demo) print(type(Demo)) print(Demo.dict.keys())
你会看到:
- Demo 本身是一个对象
- 类型是 type
- x、foo 都存在于 Demo.__dict__
重要结论:
类本身也是对象,属性首先存放在类对象上。
属性的两大类:类属性 vs 实例属性
这是本节最核心的内容。
类属性
class User: role = “guest”
role 存在于:
User.dict
所有实例默认共享它。
实例属性
class User: def init(self, name): self.name = name
name 存在于:
u = User(“alice”) u.dict
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:网络技术联盟站 Lino《Python 面向对象编程——属性和类关键字》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。









评论