1

例如,如果类型是对象的 int 或 str 属性,您将如何将其排除在对象的类中。是不是必须在属性之前声明一个装饰器,那是什么?

4

1 回答 1

2

持久规则:

  • 您的对象及其属性必须是“可腌制的”。
  • 您的对象不能有任何以“<em>p”开头的属性。
  • 以开头的对象属性_v_是“易失的”,不会保存到数据库中(请参阅下一节)。
  • 您必须明确表示对可变属性(例如实例、列表和字典)所做的任何更改或使用可变对象的持久版本,例如
    “ZODB.PersistentMapping”</li>

第三条规则是所有以_v_“易失性”开头的对象属性都不会保存到数据库中。这意味着只要持久对象在 Zope 内存缓存中,就可以使用 volatile 属性。当对象被停用(从内存中删除)时,易失性属性被丢弃。

易失性属性对于适合缓存一段时间但通常可以丢弃并轻松重新创建的数据很有用。文件连接、缓存计算、渲染模板,所有这些都是 volatile 属性的有用应用。使用 volatile 属性时必须小心。由于您几乎无法控制对象何时移入和移出内存,因此您永远不知道易失性属性何时会消失。

于 2012-10-26T02:30:35.360 回答