Python 如何在每次打印前创建延迟?
大家好,我正在用Python创建一个基于文本的游戏,我想让它在每个print语句之前都有一秒钟的延迟 我目前的解决方案是这样做: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
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