Opened 10 years ago

Closed 10 years ago

#22691 closed New feature (fixed)

Allow cached_property to be used on other methods

Reported by: FunkyBob Owned by: nobody
Component: Utilities Version: dev
Severity: Normal Keywords:
Cc: loic84 Triage Stage: Accepted
Has patch: yes Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by loic84)

This adds an optional name property to cached_property, overriding where it stores its cached value.

class Foo(object):
    def get_bar(self):
        ...heavy work...

    bar = cached_property(get_bar, name='bar')

Without the name, it would save the result in __dict__['get_bar'], thus masking the method.

Change History (4)

comment:1 by loic84, 10 years ago

Cc: loic84 added
Description: modified (diff)
Has patch: set
Needs documentation: set
Patch needs improvement: set
Triage Stage: UnreviewedAccepted
Type: UncategorizedNew feature
Version: 1.6master

Sounds good.

PR: https://github.com/django/django/pull/2707

Since cached_property is documented, it'll need docs update and release notes.

Last edited 10 years ago by loic84 (previous) (diff)

comment:2 by Tim Graham, 10 years ago

Actually, #22663 suggests to remove the documentation for cached_property. Second opinions welcome on that...

comment:3 by Tim Graham, 10 years ago

Needs documentation: unset
Patch needs improvement: unset

I added docs in a comment on the PR; will go ahead and commit this if they look okay.

comment:4 by Tim Graham <timograham@…>, 10 years ago

Resolution: fixed
Status: newclosed

In 71461b14ab0c5a3801d85738fde3aedd407d7115:

Fixed #22691 -- Added aliasing to cached_property.

Note: See TracTickets for help on using tickets.
Back to Top