From f14170406c8a1f97eacbc38830a7af62a17a31dd Mon Sep 17 00:00:00 2001 From: Matthew Schinckel Date: Sat, 30 Mar 2019 23:59:03 +1030 Subject: [PATCH] [2.2.x] Refs #30278 -- Doc'd behavior of del on an unaccessed cached_property. Thanks to Curtis Maloney for the description of the problem. Backport of c3c2ec54f59428cdf0a35abce594fd2ada35c209 from master --- docs/ref/utils.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docs/ref/utils.txt b/docs/ref/utils.txt index 06de2731ec0..919c6d60e84 100644 --- a/docs/ref/utils.txt +++ b/docs/ref/utils.txt @@ -485,6 +485,10 @@ https://web.archive.org/web/20110718035220/http://diveintomark.org/archives/2004 # set a value manually, that will persist on the instance until cleared person.friends = ["Huckleberry Finn", "Tom Sawyer"] + Because of the way the `descriptor protocol + `_ works, using ``del`` (or ``delattr``) on a + ``cached_property`` that hasn't been accessed raises ``AttributeError``. + As well as offering potential performance advantages, ``@cached_property`` can ensure that an attribute's value does not change unexpectedly over the life of an instance. This could occur with a method whose computation is