【问题标题】:How to memoize at class level?如何在课堂上记忆?
【发布时间】:2019-03-26 13:10:57
【问题描述】:

我有以下class,缓存property

class Object:

  def __init__(self, var):
    self._var = var

  @property
  @lru_cache()
  def some_property(self):
     print("i did some calculation")
     return self._var + 3

>> obj = Object(3)
>> obj.some_property
i did some calculation
6

我怎样才能做到这样每当我用相同的var创建一个新的Object时,它不会重新计算,而是memoize结果胖class level而不是重新计算somme_property

换句话说,我需要它这样做:

>> new_obj = Object(3)
>> new_obj.some_property
6

【问题讨论】:

    标签: python-3.x class caching memoization


    【解决方案1】:

    也许不是答案,而是建议。你可以在Object 中创建一个函数来保存变量。 像这样的:

    def memorize(x):
      self.MemorizedValue = x
    

    然后你可以通过Object.memorize(3)传递值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-03
      • 1970-01-01
      • 2012-01-12
      • 2015-02-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多