- %r、str.format 中的 !r、v(一个对象)都是调用该对象的 repr 方法
print(object) 调用的是 object 的 str 方法 - 不存在 str 方法,则调用 repr
不存在 bool 方法,则调用 len
不存在 iadd 方法,则调用 add - len 不是普通的方法
保持内置类型的效率和保持语言一致性之间找到了一个平衡点
该方法的背后是 CPython 直接从一个 C 结构体读取对象 PyVarObject 的属性 ob_size,这样保持内置类型的效率。
python 将该属性封装成方法,使我们自定义的数据类型可以表现的像内置类型一样,这样保证语言的一致性 - 对象模型、数据模型
对象的属性 - 元对象协议
元对象指构建语言本身来讲很重要的对象
协议可以看作接口
元对象协议是对象模型的同义词,都是构建核心语言的 API
网友评论