Python 的数据模型

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

你可能感兴趣的:(Python 的数据模型)