diff options
author | Ethan Furman <ethan@stoneleaf.us> | 2013-10-18 00:27:39 -0700 |
---|---|---|
committer | Ethan Furman <ethan@stoneleaf.us> | 2013-10-18 00:27:39 -0700 |
commit | 63c141cacd0d655647430fe4b6a10c22d355aef2 (patch) | |
tree | 74d992cc1102dd4a538ed9d027e7b3aec0d045af /Lib/types.py | |
parent | 0e0cd46227bb3e95cc6395ef514bf13f0d30c668 (diff) | |
download | cpython-git-63c141cacd0d655647430fe4b6a10c22d355aef2.tar.gz |
Close #19030: inspect.getmembers and inspect.classify_class_attrs
Order of search is now:
1. Try getattr
2. If that throws an exception, check __dict__ directly
3. If still not found, walk the mro looking for the eldest class that has
the attribute (e.g. things returned by __getattr__)
4. If none of that works (e.g. due to a buggy __dir__, __getattr__, etc.
method or missing __slot__ attribute), ignore the attribute entirely.
Diffstat (limited to 'Lib/types.py')
-rw-r--r-- | Lib/types.py | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/Lib/types.py b/Lib/types.py index b0bbfc1b4a..7e4fec2d25 100644 --- a/Lib/types.py +++ b/Lib/types.py @@ -117,7 +117,7 @@ class DynamicClassAttribute: self.fset = fset self.fdel = fdel # next two lines make DynamicClassAttribute act the same as property - self.__doc__ = doc or fget.__doc__ or self.__doc__ + self.__doc__ = doc or fget.__doc__ self.overwrite_doc = doc is None # support for abstract methods self.__isabstractmethod__ = bool(getattr(fget, '__isabstractmethod__', False)) |