pydanny/cached-property

cached_property decorator doesn't work with mangled method names

Open

#102 opened on Jun 7, 2018

View on GitHub
 (2 comments) (2 reactions) (0 assignees)Python (79 forks)github user discovery
help wanted

Repository metrics

Stars
 (705 stars)
PR merge metrics
 (No merged PRs in 30d)

Description

See also https://code.djangoproject.com/ticket/29478#ticket

import itertools

from cached_property import cached_property

count = itertools.count()
count2 = itertools.count()
count3 = itertools.count()


class Foo:
    @cached_property
    def __foo(self):
        return next(count)

    @cached_property
    def foo2(self):
        return next(count2)

    @property
    def foo3(self):
        return next(count3)

    def run(self):
        print('foo', self.__foo)
        print('foo', self.__foo)
        print('foo', self.__foo)
        print('foo', self.__foo)
        print('foo2', self.foo2)
        print('foo2', self.foo2)
        print('foo2', self.foo2)
        print('foo2', self.foo2)
        print('foo2', self.foo2)
        print('foo3', self.foo3)
        print('foo3', self.foo3)
        print('foo3', self.foo3)
        print('foo3', self.foo3)
        print('foo3', self.foo3)


Foo().run()


"""
python cached_property_test.py 
foo 0
foo 1
foo 2
foo 3
foo2 0
foo2 0
foo2 0
foo2 0
foo2 0
foo3 0
foo3 1
foo3 2
foo3 3
foo3 4
"""

Contributor guide