Message102338
The documentation says:
dis.dis([bytesource])
Disassemble the bytesource object. bytesource can denote either a module, a class, a method, a function, or a code object. For a module, it disassembles all functions. For a class, it disassembles all methods. For a single code sequence, it prints one line per bytecode instruction. If no object is provided, it disassembles the last traceback.
And the behavior is correct for old-style classes. However, since the if check in the function dis.dis is like this:
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,
types.ClassType):
when given a module (x), it doesn't handle new-style classes which are types.TypeType. (types.ClassType are old-style classes)
A simple addition of types.TypeType to the list used by the inner if clause fixes the problem for me but I don't know if it could introduce another bug. |
|
Date |
User |
Action |
Args |
2010-04-04 12:57:33 | dogeen | set | recipients:
+ dogeen |
2010-04-04 12:57:33 | dogeen | set | messageid: <1270385853.05.0.694104105245.issue8310@psf.upfronthosting.co.za> |
2010-04-04 12:57:31 | dogeen | link | issue8310 messages |
2010-04-04 12:57:30 | dogeen | create | |
|