Support disassembly of a variety of objects through dis.dis().
diff --git a/Lib/dis.py b/Lib/dis.py
index 3957f9c..dc15309 100644
--- a/Lib/dis.py
+++ b/Lib/dis.py
@@ -2,10 +2,27 @@
import sys
import string
+import types
def dis(x=None):
if not x:
distb()
+ return
+ if type(x) is types.InstanceType:
+ x = x.__class__
+ if hasattr(x, '__dict__'):
+ items = x.__dict__.items()
+ items.sort()
+ for name, x1 in items:
+ if type(x1) in (types.MethodType,
+ types.FunctionType,
+ types.CodeType):
+ print "Disassembly of %s:" % name
+ try:
+ dis(x1)
+ except TypeError, msg:
+ print "Sorry:", msg
+ print
else:
if hasattr(x, 'im_func'):
x = x.im_func