好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

python中关于import与reload以及__import__的区别详解

import module_name[,module1,...] 
from module import *|child[,child1,...] 
#!/usr/bin/env python  
#encoding: utf-8 
import os 
print 'in pythontab',id(os) 
#!/usr/bin/env python  
#encoding: utf-8 
import pythontab  #第一次会打印pythontab里面的语句 
import os #再次导入os后,其内存地址和pythontab里面的是一样的,因此这里只是对os的本地引用 
print 'in c',id(os) 
import pythontab #第二次不会打印pythontab里面的语句,因为没有重新加载 
import os
reload(os) 
#!/usr/bin/env python  
#encoding: utf-8 
import os 
print 'in pythontab',id(os) 
#!/usr/bin/env python  
#encoding: utf-8 
import pythontab  #第一次import会打印pythontab里面的语句 
print id(pythontab) #原来pythontab的内存地址 
reload(pythontab) #第二次reload还会打印pythontab里面的语句,因为有重新加载 
print id(pythontab) #reload后pythontab的内存地址,和原来一样 
#!/usr/bin/env python  
#encoding: utf-8 
import sys  #引用sys模块进来,并不是进行sys的第一次加载 
reload(sys) #重新加载sys 
sys.setdefaultencoding('utf8') ##调用setdefaultencoding函数 
#!/usr/bin/env python  
#encoding: utf-8 
import sys   
sys.setdefaultencoding('utf8') 
#!/usr/bin/env python  
#encoding: utf-8 
import sys  
reload(sys)  
sys.setdefaultencoding('utf8')  
del sys.setdefaultencoding  ##删除原来的setdefaultencoding函数   
sys.setdefaultencoding('gb2312') 
__import__(module_name[, globals[, locals[, fromlist]]]) #可选参数默认为globals(),locals(),[]
__import__('os')  
__import__('os',globals(),locals(),['path','pip']) #等价于from os import path, pip 
#!/usr/bin/env python  
#encoding: utf-8 
import sys 
__import__('a')   #第一次导入会打印消息 
del sys.modules['a']  #unimport 
__import__('a')  #再次导入还是会打印消息,因为已经unimport一次了 
__import__('a')  #这次就不会打印消息了 

总结

以上就是python中关于import与reload以及 __import__的区别详解的详细内容,更多请关注Gxl网其它相关文章!

查看更多关于python中关于import与reload以及__import__的区别详解的详细内容...

  阅读:37次