如何跳过不同函数中的一行 - Python?

时间:2018-04-24 00:26:35

标签: python-3.x

所以我有这个功能:

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。

1 个答案:

答案 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