哄骗这个开源器材来看守 Python 中的变量
副问题[/!--empirenews.page--]
要行使它,你必需先用 pip 安装它: $ python3 -m pip install watchpoints 在Python中行使 watchpoints对付任何一个你想监控的变量,行使 watch 函数对其举办监控。 from watchpoints importwatch
a =0 watch(a) a =1 当变量产生变革时,它的值就会被打印到尺度输出: ======WatchpointsTriggered======
CallStack(most recent call last): <module>(my_script.py:5): > a =1 a: 0 -> 1 信息包罗: 变量被改变的行。 挪用栈。 变量的先前值/当前值。 它不只合用于变量自己,也合用于工具的变革: from watchpoints importwatch
a =[] watch(a) a ={}#触发 a["a"]=2#触发 当变量 a 被从头分派时,回调会被触发,同时当分派给 a 的工具产生变革时也会被触发。 更风趣的是,监控不受浸染域的限定。你可以在任那里所调查变量/工具,并且无论措施在执行什么函数,回调城市被触发。 from watchpoints importwatch
def func(var): var["a"]=1
a ={} watch(a) func(a) 譬喻,这段代码打印出: ======WatchpointsTriggered======
CallStack(most recent call last):
<module>(my_script.py:8): > func(a) func (my_script.py:4): >var["a"]=1 a: {} -> {'a':1} watch 函数不只可以监督一个变量,它也可以监督一个字典或列表的属性和元素。 from watchpoints importwatch
classMyObj: def __init__(self): self.a =0
obj =MyObj() d ={"a":0} watch(obj.a, d["a"])#是的,你可以这样做 obj.a =1#触发 d["a"]=1#触发 这可以辅佐你缩小到一些你感乐趣的特定工具。 假如你对输格外式不满足,你可以自界说它。只需界说你本身的回调函数: watch(a, callback=my_callback)
#可能全局配置
watch.config(callback=my_callback) 当触发时,你乃至可以行使 pdb: watch.config(pdb=True) 这与 breakpoint() 的举动相同,会给你带来相同调试器的体验。 假如你不想在每个文件中都导入这个函数,你可以通过 install 函数使其成为全局: (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |