大家好,我是正在实战各种 AI 项目的程序员晚枫。
动态创建属性、拦截属性访问、减少内存占用,这些高级技巧让你的代码更灵活。
🎯 getattr__和__getattribute
延迟加载
1 | class LazyObject: |
区别
| 方法 | 触发时机 |
|---|---|
__getattr__ | 属性不存在时 |
__getattribute__ | 每次访问属性时 |
💾 __slots__内存优化
使用示例
1 | # 普通类(使用__dict__) |
何时使用slots
- 创建大量实例
- 属性固定
- 内存敏感场景
🎯 本讲总结
getattr:属性不存在时调用。
getattribute:每次访问属性时调用。
slots:预定义属性,节省内存。
📚 推荐教材
《Python 编程从入门到实践(第 3 版)》 | 《流畅的 Python(第 2 版)》 | 《CPython 设计与实现》
学习路线: 零基础 → 《从入门到实践》 → 《流畅的 Python》 → 本门课程 → 《CPython 设计与实现》
🔗 课程导航
💬 联系我
| 平台 | 账号/链接 |
|---|---|
| 微信 | 扫码加好友 |
| B 站 | Python 自动化办公社区 |
主营业务:AI 编程培训、企业内训、技术咨询