嗨,所以我要用Python创建一个基于文本的游戏,我想这样做,以便在每个打印语句之前有一秒钟的延迟。
我当前的解决方案是这样做:
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")
但是,在每次打印前放置time.sleep
真是令人讨厌!
所以我想知道是否有人知道一种更有效的方法。
答案 0 :(得分:1)
为什么不使用函数呢?
def dprint(s, delay=1):
time.sleep(delay)
print(s)
你还好吗?
dprint("hello")
答案 1 :(得分:1)
如果您需要临时使用此功能(对于所有print()函数子调用),则可以使用mock.patch()修补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)
答案 2 :(得分:0)
这就是我的方法,它将支持对print()
的所有现有调用,而无需将被调用函数的名称更改为其他名称,并且它支持多个参数和关键字参数(就像常规的{{1 }}函数确实):
print()