python: 属性字段是否会自动缓存?

11 浏览
0 Comments

python: 属性字段是否会自动缓存?

我想问的是,解释器是否以相同的方式运行以下两个代码片段:

class A(object):
  def __init__(self):
     self.__x = None
  @property
  def x(self):
     if not self.__x:
        self.__x = ... #一些复杂的操作
     return self.__x

和更简单的:

class A(object):
  @property
  def x(self):
      return ... #一些复杂的操作

也就是说,解释器是否聪明到足以缓存属性x

我假设x不会改变 - 找到它很困难,但一旦找到它,就没有再次找到它的理由。

0