得益于python数据类型,自定义类型的行为可以像内置类型那样自然。实现如此自然的行为,靠的不是继承,而是鸭子类型:我们只需要按照预定行为实现对象的方法即可。
Python中 classmethod VS staticmethod
staticmethod不是特别有用
格式化显示
内置的format函数和str.format()方法把各个类型的格式化方式委托给相应的.format(format_spec)方法。
格式规范微语言
只读属性and可散列
为了把一个实例变成可散列的,需要实现__hash__方法和__eq__方法
想要创建可散列的类型,不一定要实现特性,也不一定要保护实例属性。只需要正确地实现__hash__和__eq__方法即可,但是实例的散列值绝不应该变化,因此下面只是借机提到了可读属性。
Python的私有属性和受保护的属性
Python中各个实例中名为__dict__的字典里存储实例属性
要构建符合Python风格的对象,就要观察真正的Python对象行为。