所以我有这个功能:
def game_on():
''' I'm not a rat, Agent Kujan. '''
def easter_egg():
print('Easter Egg: Mmmm... Cadbury.')
print("Kaizer Sozegg!")
sys.exit()
print('The greatest trick the Easter Bunny ever pulled...')
主要功能:
def main():
sandbox()
game_on()
我必须使用sandbox()函数来使game_on()函数不打印" Kaizer Sozegg!"然后不退出,一旦沙箱功能完成,它需要保持正常运行主功能。我使用的是Python 3.4。
答案 0 :(得分:1)
这是实现你想要做的事情的一种可怕的方式,尽管我不知道你为什么要这样做(只适用于Python 3,或者print_function
未来):
def sandbox():
global print
def print_decorator(fn):
def wraps(*args, **kwargs):
if args[0] != "Kaizer Sozegg!":
fn(*args, **kwargs)
return wraps
print = print_decorator(print)
def exit_patch(i=0):
pass
sys.exit = exit_patch