魔法函数__dict__和__getattr__的妙用

魔法函数__dict__和__getattr__的妙用
最新回答
少年的泪不及海水蓝°

2026-10-20 21:56:07

__dict__是用于存储对象属性的字典,其键为属性名,值为属性的值。通过字典属性,我们可以操作这个字典,如查看其内容、修改或删除键值对。使用dir()函数可查看__dict__的属性。实例展示了如何利用__dict__简化对象属性赋值过程,特别是在处理大量键值对时,明显减少代码量。此外,__dict__在单例模式中用于共享同一状态,允许对象状态在不同实例间共享。注意,不是所有内建对象都包含__dict__,如list,可通过dir(list)查看其属性。

__getattr__用于实现动态属性操作。在访问属性时,如果该属性存在则输出其值,若不存在则调用__getattr__方法。此方法允许我们实现动态属性添加或修改,尤其在只允许添加指定属性的场景下,通过__slots__函数控制。有趣的是,实例展示了通过__getattr__生成百度源码,通过链式调用生成对应URL并获取网页源码,实现优雅的代码调用和明确的接口说明。

另一个经典应用是通过访问属性值获取字典的键值。利用__getattr__,可以实现灵活的键值访问方式。总结,__dict__和__getattr__提供了强大的对象属性管理与动态属性操作能力,有助于简化代码、提升代码可读性与灵活性。

今天的内容就到这里。更多Python知识,欢迎关注微信公众号:python学习开发。

微信公众号二维码:

![关注微信公众号:python学习开发](weixin.qq.com/r/ZyiNlZ7...) (二维码自动识别)