面向对象编程
几乎所有现代编程语言都支持面向对象功能,但由于设计理念不同,不同编程语言所支持的面向对象有许多差异。在 Python 里,万物皆对象,最基础的浮点数也是一个对象。
类常用知识
通过类,我们可以把头脑中的抽象概念进行建模,进而实现复杂的功能。封装(Encapsulation)是面向对象编程里的一个重要概念,为了更好地体现类的封装性,许多编程语言支持将属性设置为公开或私有,只是方式略有不同。
当你使用 __{var} 的方式定义一个私有属性时,Python 解释器只是重新给了它一个包含当前类名的别名 _{class}__{var},因此你仍然可以在外部用这个别名来访问和修改它。
设计哲学:期望程序员做正确的事,而不是在语言上增加太多条条框框。
在某些特殊场景下,合理利用 __dict__ 可以帮你完成常规做法难以做到的一些事情:
- 实例的 __dict__ 里,保存着当前实例的所有数据;
- 类的 __dict__ 里,保存着类的文档、方法等所有数据;