我们都喜欢用print函数调试python代码,不是吗?我的问题是:如何从python stdlib调试abc模块?尝试使用print函数(或sys.stdout文件,无论如何),最终会出现像
这样的错误TypeError: writeobject with NULL file
原因有点明显:此时尚未启动标准流。那么如何探测这段代码呢?
最重要的是,这里声明的类不是由内置的python3函数__build_class__
构建的:检查this code,它适用于“常规”类,不适用于abc。
有什么建议吗?
答案 0 :(得分:0)
好的,我明白了。 abc模块实际上有点特殊:它涉及python引导序列,所以在代码开始时你已经完全构建并加载了模块对象。要修改abc,只需使用imp.reload在运行时重建模块。