Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在python中获取eval中打印的内容?_Python_Python 3.x_Printing_Console_Eval - Fatal编程技术网

如何在python中获取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

我正在制作一个Discord机器人,想知道是否有可能获得eval打印的内容

我知道你可以在评估开始时开始录制打印,在评估结束时停止,这样你可以得到评估期间打印的内容,但是程序使用异步,我担心如果我这样做,我也可以在评估之外打印内容

有没有办法得到一次评估时打印的内容

谢谢大家!


我知道使用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
通过这种方式,您将得到仅在评估中打印的内容,而不管其他任何内容同时运行