





















今天才知道 Python 调试器 PDB 可以通过 ~/.pdbrc 文件自定义——在文件里定义 alias,就能在调试时直接调用。
.pdbrc 的格式要求如下:
~/.pdbrc (全局)或项目目录下的 .pdbrc (局部)alias 名称 命令内容 ,用 %1 、 %2 等引用参数;; 连接,但 必须写在一行里import 引入的变量会泄漏到当前作用域,需要手动 del 清理Trey Hunner 在他的文章中分享了一套实用的 alias 配置:
alias dir print(*(f"%1.{n} = {v!r}" for n, v in __import__('inspect').getmembers(%1) if not n.startswith("__")), sep="\n") alias attrs import inspect as __i ;; print(*(f"%1.{n} = {v!r}" for n, v in __i.getmembers(%1, lambda v: not __i.isroutine(v)) if not n.startswith("__")), sep="\n") ;; del __i alias vars print(*(f"%1.{k} = {v!r}" for k, v in vars(%1).items()), sep="\n") alias src import inspect as __i;; print(f"{__i.getsourcefile(%1)} on line {__i.getsourcelines(%1)[1]}:\n{''.join(__i.getsource(%1))}") ;; del __i alias loc print(*(f"{name} = {value!r}" for name, value in vars().items() if not name.startswith("__")), sep="\n")
这 5 个 alias 的效果:
dir obj 比 dir(obj) 输出更友好,逐行以 obj.attr = repr 格式打印attrs obj 过滤掉方法,只留数据属性vars obj 只显示实例变量( __dict__ 中的)src obj.method 直接查看方法的源码位置和内容loc 列出当前作用域所有局部变量此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。