Kaydet (Commit) e8814fbb authored tarafından Nick Coghlan's avatar Nick Coghlan

As per python-dev discussion with Eli, properly document and publish dis.show_code

üst c02adca9
...@@ -36,7 +36,7 @@ the following command can be used to get the disassembly of :func:`myfunc`:: ...@@ -36,7 +36,7 @@ the following command can be used to get the disassembly of :func:`myfunc`::
The :mod:`dis` module defines the following functions and constants: The :mod:`dis` module defines the following functions and constants:
.. function:: code_info(x=None) .. function:: code_info(x)
Return a formatted multi-line string with detailed code object information Return a formatted multi-line string with detailed code object information
for the supplied function, method, source code string or code object. for the supplied function, method, source code string or code object.
...@@ -48,6 +48,16 @@ The :mod:`dis` module defines the following functions and constants: ...@@ -48,6 +48,16 @@ The :mod:`dis` module defines the following functions and constants:
.. versionadded:: 3.2 .. versionadded:: 3.2
.. function:: show_code(x)
Print detailed code object information for the supplied function, method,
source code string or code object to stdout.
This is a convenient shorthand for ``print(code_info(x))``, intended for
interactive exploration at the interpreter prompt.
.. versionadded:: 3.2
.. function:: dis(x=None) .. function:: dis(x=None)
Disassemble the *x* object. *x* can denote either a module, a class, a Disassemble the *x* object. *x* can denote either a module, a class, a
......
...@@ -7,7 +7,7 @@ from opcode import * ...@@ -7,7 +7,7 @@ from opcode import *
from opcode import __all__ as _opcodes_all from opcode import __all__ as _opcodes_all
__all__ = ["code_info", "dis", "disassemble", "distb", "disco", __all__ = ["code_info", "dis", "disassemble", "distb", "disco",
"findlinestarts", "findlabels"] + _opcodes_all "findlinestarts", "findlabels", "show_code"] + _opcodes_all
del _opcodes_all del _opcodes_all
_have_code = (types.MethodType, types.FunctionType, types.CodeType, type) _have_code = (types.MethodType, types.FunctionType, types.CodeType, type)
...@@ -140,12 +140,8 @@ def _format_code_info(co): ...@@ -140,12 +140,8 @@ def _format_code_info(co):
lines.append("%4d: %s" % i_n) lines.append("%4d: %s" % i_n)
return "\n".join(lines) return "\n".join(lines)
# show_code is deliberately undocumented and left out of __all__,
# since it doesn't offer any real benefit over code_info() above
# It is only retained because it already existed and was not
# marked as private in previous versions of Python
def show_code(co): def show_code(co):
"""Show details about a code object.""" """Print details of methods, functions, or code to stdout."""
print(code_info(co)) print(code_info(co))
def disassemble(co, lasti=-1): def disassemble(co, lasti=-1):
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment