如何在python中获取eval中打印的内容?
我正在制作一个Discord机器人,想知道是否有可能获得eval打印的内容 我知道你可以在评估开始时开始录制打印,在评估结束时停止,这样你可以得到评估期间打印的内容,但是程序使用异步,我担心如果我这样做,我也可以在评估之外打印内容 有没有办法得到一次评估时打印的内容 谢谢大家!如何在python中获取eval中打印的内容?,python,python-3.x,printing,console,eval,Python,Python 3.x,Printing,Console,Eval,我正在制作一个Discord机器人,想知道是否有可能获得eval打印的内容 我知道你可以在评估开始时开始录制打印,在评估结束时停止,这样你可以得到评估期间打印的内容,但是程序使用异步,我担心如果我这样做,我也可以在评估之外打印内容 有没有办法得到一次评估时打印的内容 谢谢大家! 我知道使用eval是不好的,但我不是在问eval是好是坏。我不敢相信我以前没有想到这一点 将print设置为您的一个函数,该函数记录内容,然后将其传递给普通的print函数,并让eval使用它,如下所示: try: #I
我知道使用eval是不好的,但我不是在问eval是好是坏。我不敢相信我以前没有想到这一点 将print设置为您的一个函数,该函数记录内容,然后将其传递给普通的print函数,并让eval使用它,如下所示:
try: #Imagine this was in a try
printlog = []
print = yourfunction #yourfunction appends to printlog prints that
#go through it and then prints them normally
eval(stuff)
#printlog now has what was printed
通过这种方式,您将得到仅在评估中打印的内容,而不管其他任何内容同时运行。我不敢相信我以前没有想到这一点 将print设置为您的一个函数,该函数记录内容,然后将其传递给普通的print函数,并让eval使用它,如下所示:
try: #Imagine this was in a try
printlog = []
print = yourfunction #yourfunction appends to printlog prints that
#go through it and then prints them normally
eval(stuff)
#printlog now has what was printed
通过这种方式,您将得到仅在评估中打印的内容,而不管其他任何内容同时运行