gpt4 book ai didi

python - PyCharm 没有在 "pass"上击中 Quick and Dirty 断点

转载 作者:太空宇宙 更新时间:2023-11-03 13:25:36 24 4
gpt4 key购买 nike

我想添加一个快速但肮脏的断点,例如当我有兴趣在迭代一个长列表的中间停止时。

for item in list:
if item == 'curry':
pass

我在pass 下了一个断点,它没有命中(!)。

如果我添加以下(空)打印

for item in list:
if item = 'curry':
pass
print('')

并且passprint都断点,只有print命中。

知道为什么吗? Windows 7,(可移植)Python 3.7


[更新] 根据@Adam.Er8 的评论形式,我尝试插入并设置省略号文字的断点,... 但没有成功,尽管下面的 print('' ) 是。


[Updtae++] 嗯,它确实传入

上打断点
for key, value in dictionary.items(): 
pass

最佳答案

pass 实际上并没有进入字节码。代码完全一样,就好像它不存在一样。您可以使用 dis 查看此信息模块。 (在 Linux 上使用 3.7 的示例)。

>>> import dis
>>> dis.dis(dis.dis('for i in a:\n\tprint("i")')
1 0 SETUP_LOOP 20 (to 22)
2 LOAD_NAME 0 (a)
4 GET_ITER
>> 6 FOR_ITER 12 (to 20)
8 STORE_NAME 1 (i)

2 10 LOAD_NAME 2 (print)
12 LOAD_CONST 0 ('i')
14 CALL_FUNCTION 1
16 POP_TOP
18 JUMP_ABSOLUTE 6
>> 20 POP_BLOCK
>> 22 LOAD_CONST 1 (None)
24 RETURN_VALUE
>>> dis.dis('for i in a:\n\tpass\n\tprint("i")')
1 0 SETUP_LOOP 20 (to 22)
2 LOAD_NAME 0 (a)
4 GET_ITER
>> 6 FOR_ITER 12 (to 20)
8 STORE_NAME 1 (i)

3 10 LOAD_NAME 2 (print)
12 LOAD_CONST 0 ('i')
14 CALL_FUNCTION 1
16 POP_TOP
18 JUMP_ABSOLUTE 6
>> 20 POP_BLOCK
>> 22 LOAD_CONST 1 (None)
24 RETURN_VALUE

字节码的作用与两个 block 相同这一事实无关。 pass 被忽略,因此调试器无法中断。

关于python - PyCharm 没有在 "pass"上击中 Quick and Dirty 断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56662719/

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