Use __module__ attribute when available instead of using isclass() predicate
(functions and methods have grown the __module__ attribute too). See bug #570300.
diff --git a/Lib/inspect.py b/Lib/inspect.py
index 3c47cd9..5e3f7e2 100644
--- a/Lib/inspect.py
+++ b/Lib/inspect.py
@@ -370,7 +370,7 @@
"""Return the module an object was defined in, or None if not found."""
if ismodule(object):
return object
- if isclass(object):
+ if hasattr(object, '__module__'):
return sys.modules.get(object.__module__)
try:
file = getabsfile(object)