Class objects provide these attributes:
__doc__ documentation string
__module__ name of module in which this class was defined"""
- return isinstance(object, types.ClassType) or hasattr(object, '__bases__')
+ return isinstance(object, (type, types.ClassType))
def ismethod(object):
"""Return true if the object is an instance method.
def test_excluding_predicates(self):
self.istest(inspect.isbuiltin, 'sys.exit')
self.istest(inspect.isbuiltin, '[].append')
- self.istest(inspect.isclass, 'mod.StupidGit')
self.istest(inspect.iscode, 'mod.spam.func_code')
self.istest(inspect.isframe, 'tb.tb_frame')
self.istest(inspect.isfunction, 'mod.spam')
self.assert_(inspect.isroutine(mod.spam))
self.assert_(inspect.isroutine([].count))
+ def test_isclass(self):
+ self.istest(inspect.isclass, 'mod.StupidGit')
+ self.assertTrue(inspect.isclass(list))
+
+ class newstyle(object): pass
+ self.assertTrue(inspect.isclass(newstyle))
+
+ class CustomGetattr(object):
+ def __getattr__(self, attr):
+ return None
+ self.assertFalse(inspect.isclass(CustomGetattr()))
+
def test_get_slot_members(self):
class C(object):
__slots__ = ("a", "b")
Library
-------
+- Issue #1225107: inspect.isclass() returned True for instances with a custom
+ __getattr__.
+
- Issue #3997: zipfiles generated with more than 65536 files could not be
opened with other applications.