擅长:python、mysql、java
<p>在这个简单的例子中,我将只使用“monkeypatch”受影响的功能:</p>
<pre><code>from contextlib import contextmanager
import sys
def test():
print("Silence me")
sys.exit()
print("You need to hear this")
@contextmanager
def manipulate():
global print
try:
_sys_exit_backup, sys.exit = sys.exit, lambda: None
i = iter([lambda *args:None, print])
_print_backup, print = print, lambda *args: next(i)(*args)
yield
finally:
sys.exit = _sys_exit_backup
print = _print_backup
def main():
with manipulate():
test()
main()
</code></pre>
<p>印刷品:</p>
<pre><code>You need to hear this
</code></pre>