【发布时间】:2010-11-14 02:48:09
【问题描述】:
我正在使用内置模块插入一些实例,因此可以全局访问它们以进行调试。 __builtins__ 模块的问题在于它是主脚本中的一个模块,并且是模块中的一个字典,但是由于我的脚本取决于案例可以是主脚本或模块,所以我必须这样做:
if isinstance(__builtins__, dict):
__builtins__['g_frame'] = 'xxx'
else:
setattr(__builtins__, 'g_frame', 'xxx')
有没有比这更短的解决方法?更重要的是,为什么__builtins__ 会这样?
这是查看此内容的脚本。创建一个模块 a.py:
#module-a
import b
print 'a-builtin:',type(__builtins__)
创建一个模块 b.py:
#module-b
print 'b-builtin:',type(__builtins__)
现在运行 python a.py:
$ python a.py
b-builtin: <type 'dict'>
a-builtin: <type 'module'>
【问题讨论】:
-
欲了解更多信息,请参阅*.com/questions/11181519/… [可能重复]
-
您是否尝试改用
import builtins?它给了你什么结果?我按照这里 (*.com/questions/61084916/…) 的建议使用了它,它似乎有效。
标签: python python-module built-in