PyCharm: 中断内置函数(例如 `print`)?

PyCharm: break on built in function (such as `print`)?

如何让 PyCharm 中断内置函数,例如 print? 我已经使用 Ctrl-B 跳转到 print 的“声明”,并找到了一个 PyCharm 存根文件:C:\Users\Zvika\AppData\Local\JetBrains\PyCharm2022.1\python_stubs\-185531349\builtins.py

其中有:

def print(self, *args, sep=' ', end='\n', file=None): # known special case of print
    # I've omitted the docstring
    pass

但它不是很有用,因为PyCharm不能在pass上设置断点。

知道如何打破 print 吗?

如果您只是为了调试需要这个,那么下面的方法就可以了:

import builtins

def my_breakpoint(*args, **kwargs):  # Ingore arguments
    breakpoint()

# Redefine `print` builtin
builtins.print = my_breakpoint

print('foo')
# Drops into pdb

python_stubs只是存根,它们提供关于参数和return类型函数的信息。它们与真正的实现无关(当然是在 C 中)。