On Thursday 21 January 2016 15:00, Robert wrote: > Hi, > > I read below code snippet on link: > https://docs.python.org/2/library/functions.html#property
Property docstrings are hard to get to. But with the class C you gave, this works in the interactive interpreter: help(C.__dict__['x']) displays: I'm the 'x' property. C.__dict__['x'] will return the property object itself, without running the getter or setter, so you can access the dostring: py> C.__dict__['x'] <property object at 0xb7171d9c> py> C.__dict__['x'].__doc__ "I'm the 'x' property." But what happens if you inherit the property from some other class? py> class D(C): pass ... py> class E(D): pass ... py> E.__dict__['x'] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'x' In Python 3, you can use the inspect module: py> obj = inspect.getattr_static(E, 'x') py> inspect.getdoc(obj) "I'm the 'x' property." but in Python 2, you may need to walk the class's MRO by hand. Something like this: def getattr_static(obj, name): if isinstance(obj, type): for cls in obj.__mro__: if name in cls.__dict__: return cls.__dict__[name] -- Steve -- https://mail.python.org/mailman/listinfo/python-list