summaryrefslogtreecommitdiffstats
path: root/Lib/dis.py
diff options
context:
space:
mode:
authorGuido van Rossum <guido@python.org>1997-03-14 04:15:43 (GMT)
committerGuido van Rossum <guido@python.org>1997-03-14 04:15:43 (GMT)
commit18aef3c10214fba136da7ccee30932b8aab4cb97 (patch)
treee1a3563aa12934083e84c9758d73860eb352cf02 /Lib/dis.py
parent7b7c5786161d9d443d13f56276620519587a2624 (diff)
downloadcpython-18aef3c10214fba136da7ccee30932b8aab4cb97.zip
cpython-18aef3c10214fba136da7ccee30932b8aab4cb97.tar.gz
cpython-18aef3c10214fba136da7ccee30932b8aab4cb97.tar.bz2
Support disassembly of a variety of objects through dis.dis().
Diffstat (limited to 'Lib/dis.py')
-rw-r--r--Lib/dis.py17
1 files changed, 17 insertions, 0 deletions
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