我正在使用內置模塊來插入一些實例,因此它們可以被全局訪問用於調試目的。與__builtins__
模塊的問題是,它是在一個主腳本模塊,並在模塊的字典,而是取決於不同的情況我的腳本可以是主腳本或模塊,我必須這樣做:爲什麼__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'>
欲瞭解更多信息,請參閱http://stackoverflow.com/questions/11181519/python-whats-the-difference-between-builtin-and-builtins [可能重複] – pd12 2015-08-11 05:24:37