探索带有打印功能的abc模块
Explore abc module with print function
我们都喜欢通过打印函数调试 python 代码,不是吗?我的问题是:如何从 python stdlib 调试 abc 模块?尝试使用 print 函数(或 sys.stdout 文件,等等),你最终会得到一个像
这样的错误
TypeError: writeobject with NULL file
原因很明显:此时标准流尚未初始化。那么如何探测这段代码呢?
最重要的是,这里声明的 类 不是由内置 python3 函数 __build_class__
构建的:查看 this code,它与“常规”[=23] 一起使用=] 而不是 abc.
有什么建议吗?
好的,我明白了。 abc 模块实际上有点特殊:它涉及 python bootstrap 序列,因此在您开始编写代码时,您已经完全构建并加载了模块对象。要修补 abc,只需使用 imp.reload 在运行时重建模块。
我们都喜欢通过打印函数调试 python 代码,不是吗?我的问题是:如何从 python stdlib 调试 abc 模块?尝试使用 print 函数(或 sys.stdout 文件,等等),你最终会得到一个像
这样的错误TypeError: writeobject with NULL file
原因很明显:此时标准流尚未初始化。那么如何探测这段代码呢?
最重要的是,这里声明的 类 不是由内置 python3 函数 __build_class__
构建的:查看 this code,它与“常规”[=23] 一起使用=] 而不是 abc.
有什么建议吗?
好的,我明白了。 abc 模块实际上有点特殊:它涉及 python bootstrap 序列,因此在您开始编写代码时,您已经完全构建并加载了模块对象。要修补 abc,只需使用 imp.reload 在运行时重建模块。