gpt4 book ai didi

python - Jupyter 中的调试和运行模式

转载 作者:行者123 更新时间:2023-11-28 22:23:00 25 4
gpt4 key购买 nike

像在 matlab 中一样,Jupyter 中是否有可能在 Debug模式下运行函数,在 Debug模式下执行在断点处暂停,而在运行模式下函数忽略断点?在一个简单的例子中,比如

from IPython.core.debugger import set_trace

def debug(y):
x = 10
x = x + y
set_trace()
for i in range(10):
x = x+i
return x

debug(10)

是否有可能我们调用函数时忽略 set_trace 而函数正常运行?

我想要这个的原因是在我的函数中我放置了很多设置跟踪,当我只想在没有跟踪的情况下运行时我需要注释所有设置跟踪。有没有更简单的方法?

最佳答案

我不知道有什么方法可以直接用 Jupyter 做到这一点,但你可以做的是猴子补丁 set_trace() 像这样(我建议把它放在它的自己的单元格,以便您可以在想要重新打开调试时重新运行它):

from IPython.core.debugger import set_trace
debug_mode = False #switch this to True if you want debugging back on
if not debug_mode:
def pass_func():
pass
set_trace = pass_func

它所做的是将名称 set_trace 重新绑定(bind)为一个什么都不做的函数,因此每次 set_trace() 被调用时,它只会通过

如果您想要重新打开调试,只需将 debug_mode 标志切换为 True 并重新运行单元。然后,这会将名称 set_trace 重新绑定(bind)为从 IPython.core.debugger 导入的 set_trace

关于python - Jupyter 中的调试和运行模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47329535/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com