我不从事编程领域,但最近对 Python 感兴趣。我正在编写一些函数,但为了调试,我需要查看正在运行哪些命令。例如:
def foo():
for i in xrange(0,5):
a = 1 + i
是否可以让解释器输出
>>> for i in xrange(0,5)
>>> a = 1 + 0
>>> a = 1 + 1
>>> a = 1 + 2
>>> a = 1 + 3
>>> a = 1 + 4
For
>>> foo()
或者至少将发生的情况写入文件?我过去写过一些脚本,我记得这在 DOS 中是可能的,使用 @ECHO ON 或其他东西。我读了一些书,感觉它与 Python 中的 stdin 和 stdout 有关,所以我尝试了
import sys
def foo():
for i in xrange(0,5):
a = 1 + i
sys.stdin.flush()
sys.stdout.flush()
但我什么也没得到......我也尝试过
import sys
# foo()
sys.stdin.read()
sys.stdout.read()
and https://stackoverflow.com/a/3289051/2032568 https://stackoverflow.com/a/3289051/2032568,但它只是挂起。抱歉,如果这不适合初学者。我找不到任何可以回答我的问题的东西。
看看跟踪模块 http://docs.python.org/2/library/trace.html
python -m trace --count -C . somefile.py
输出放置在当前目录中:
$ cat somefile.trace
1: def foo():
6: for i in xrange(5):
5: a = 1 + i
1: foo()
-c,--计数
程序完成后生成一组带注释的列表文件,显示每个语句的执行次数
如果使用-t
选项你会得到这个:
$ python -m trace --count -t tr.py
--- modulename: tr, funcname: <module>
tr.py(1): def foo():
tr.py(5): foo()
--- modulename: tr, funcname: foo
tr.py(2): for i in xrange(5):
tr.py(3): a = 1 + i
tr.py(2): for i in xrange(5):
tr.py(3): a = 1 + i
tr.py(2): for i in xrange(5):
tr.py(3): a = 1 + i
tr.py(2): for i in xrange(5):
tr.py(3): a = 1 + i
tr.py(2): for i in xrange(5):
tr.py(3): a = 1 + i
tr.py(2): for i in xrange(5):
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)