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 中)。
如何让 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 中)。