Fixed #23688 -- Updated cached_property to preserve docstring of original function

This commit is contained in:
John-Scott Atlakson 2014-10-19 18:34:35 -04:00 committed by Tim Graham
parent 54e695331b
commit dbf7a3df45
2 changed files with 5 additions and 0 deletions

View File

@ -51,6 +51,7 @@ class cached_property(object):
"""
def __init__(self, func, name=None):
self.func = func
self.__doc__ = getattr(func, '__doc__')
self.name = name or func.__name__
def __get__(self, instance, type=None):

View File

@ -50,6 +50,7 @@ class FunctionalTestCase(unittest.TestCase):
@cached_property
def value(self):
"""Here is the docstring..."""
return 1, object()
def other_value(self):
@ -57,6 +58,9 @@ class FunctionalTestCase(unittest.TestCase):
other = cached_property(other_value, name='other')
# docstring should be preserved
self.assertEqual(A.value.__doc__, "Here is the docstring...")
a = A()
# check that it is cached