gpt4 book ai didi

python - 如何在 Python 中打印命令?

转载 作者:行者123 更新时间:2023-11-28 20:25:10 25 4
gpt4 key购买 nike

我不在编程领域,但我最近对 ​​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

为了

>>> 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()

https://stackoverflow.com/a/3289051/2032568 ,但它只是挂起。对不起,如果这不是适合初学者的地方。我找不到任何可以回答我问题的内容。

最佳答案

看看 trace-module

python -m trace --count -C . somefile.py

输出放在currebt目录:

$ cat somefile.trace
1: def foo():
6: for i in xrange(5):
5: a = 1 + i

1: foo()

-c, --count Produce a set of annotated listing files upon program completion that shows how many times each statement was executed

如果使用 -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):

关于python - 如何在 Python 中打印命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16003700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com