Remove dubious suggestion (GH-26789)

Remove the weakref example.  If a new instance is created and the same arguments are passes, it raises a ReferenceError.
This commit is contained in:
Raymond Hettinger 2021-06-18 19:19:32 -05:00 committed by GitHub
parent 83c9dad8da
commit e5c7ee1156
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 0 additions and 18 deletions

View File

@ -1852,14 +1852,6 @@ bounded by the specified *maxsize*. The disadvantage is that instances
are kept alive until they age out of the cache or until the cache is
cleared.
To avoid keeping an instance alive, it can be wrapped a weak reference
proxy. That allows an instance to be freed prior aging out of the LRU
cache. That said, the weak reference technique is rarely needed. It is
only helpful when the instances hold large amounts of data and the
normal aging-out process isn't fast enough. And even though the
instance is released early, the cache still keeps references to the
other method arguments and to the result of the method call.
This example shows the various techniques::
class Weather:
@ -1884,16 +1876,6 @@ This example shows the various techniques::
"Rainfall on a given date"
# Depends on the station_id, date, and units.
def climate(self, category='average_temperature'):
"List of daily average temperatures for a full year"
return self._climate(weakref.proxy(self), category)
@staticmethod
@lru_cache(maxsize=10)
def _climate(self_proxy, category):
# Depends on a weak reference to the instance
# and on the category parameter.
The above example assumes that the *station_id* never changes. If the
relevant instance attributes are mutable, the *cached_property* approach
can't be made to work because it cannot detect changes to the