Python 如何在每次打印前创建延迟?

Python 如何在每次打印前创建延迟?,python,python-3.x,delay,text-based,Python,Python 3.x,Delay,Text Based,大家好,我正在用Python创建一个基于文本的游戏,我想让它在每个print语句之前都有一秒钟的延迟 我目前的解决方案是这样做: time.sleep(1) name = input('Do you happen to remember what your name was? ').capitalize() print(name + ", that's a nice name.") time.sleep(1) print("Well it seems that you are all bette

大家好,我正在用Python创建一个基于文本的游戏,我想让它在每个print语句之前都有一秒钟的延迟

我目前的解决方案是这样做:

time.sleep(1)
name = input('Do you happen to remember what your name was? ').capitalize()
print(name + ", that's a nice name.")
time.sleep(1)
print("Well it seems that you are all better now so I'm going to have to let you go")
但是,在每次打印之前都要花
时间。睡眠
,这很烦人


所以我想知道是否有人知道一种更有效的方法。为什么不使用函数呢

def dprint(s, delay=1):
    time.sleep(delay)
    print(s)
对你合适吗

dprint("hello")

为什么不用函数来做呢

def dprint(s, delay=1):
    time.sleep(delay)
    print(s)
对你合适吗

dprint("hello")
如果您需要此功能是临时的,但对于所有print()函数子类,可以使用如下方法修补print()函数:

import time
from unittest import mock

OLD_PRINT = print

def make_delayed_print(delay):

    def delayed_print(*args, **kwargs):
        time.sleep(delay)
        OLD_PRINT(*args, **kwargs)

    return delayed_print


with mock.patch('builtins.print', make_delayed_print(1)):
    print(1)
    print(2)
如果您需要此功能是临时的,但对于所有print()函数子类,可以使用如下方法修补print()函数:

import time
from unittest import mock

OLD_PRINT = print

def make_delayed_print(delay):

    def delayed_print(*args, **kwargs):
        time.sleep(delay)
        OLD_PRINT(*args, **kwargs)

    return delayed_print


with mock.patch('builtins.print', make_delayed_print(1)):
    print(1)
    print(2)

我将这样做,它将支持对
print()
的所有现有调用,而无需将被调用函数的名称更改为其他名称,并且它支持多个参数和关键字参数(就像常规的
print()
函数一样):


我将这样做,它将支持对
print()
的所有现有调用,而无需将被调用函数的名称更改为其他名称,并且它支持多个参数和关键字参数(就像常规的
print()
函数一样):


作为一项改进,我们可以将
delay
参数设置为默认值
1
argument@AzatIbrakov是的,我看到他明确地说了一秒钟。@Bobb很高兴,如果有帮助的话,你可以接受这个解决方案作为一项改进,我们可以使用默认值
1
设置
delay
参数argument@AzatIbrakov是的,我看到他明确地说了一秒钟。@Bobb很高兴,如果有帮助的话,你可以接受这个解决方案P