码迷,mamicode.com
首页 > 编程语言 > 详细

Python_Tips[0] -> 关于 import

时间:2018-01-04 16:27:05      阅读:108      评论:0      收藏:0      [点我收藏+]

标签:模块   int   删除   说明   def   his   pytho   this   class   

关于 import


 

1 import

import可用于导入一个Python的标准模块,包括.py文件或带有__init__.py的文件目录。

在Python中,import一个模块后,若再次import该模块,不会重新加载指定模块,而是把该模块的内存地址给引用到本地环境变量。即其id是相同的。

首先定义一个foo模块

1 print(This is foo)  
2 def act():  
3     print(This is foo function: act)  

然后在另一个模块中导入foo,

1 import foo  
2 print(First time import "foo", id is, id(foo))  
3 print(This is impor)  
4 import foo  
5 print(Second time import "foo", id is, id(foo))  
6 foo.act()  

运行结果

This is foo
First time import "foo", id is 57152600
This is impor
Second time import "foo", id is 57152600
This is foo function: act

最终两次显示的id是相同的,且不显示foo中的打印语句,说明其内存地址没变,只是本地引用。

2 reload

利用importlib的reload函数对已经加载的模块进行重新加载,一般用于原模块有变化的特殊情况下,reload前该模块必须已经import过。

1 import importlib  
2 import foo  
3 importlib.reload(foo)  

3 __import__

__import__与import的功能相同,但是__import__是一个函数,只接受字符串,其实import语句也是调用这个函数进行工作的。

<import sys> equals to <sys = __import__(’sys’)>

调用可以通过del删除上次的import完成unimport

 1 import sys
 2 __import__(foo)
 3 print(sys.modules[foo])
 4 del sys.modules[foo]
 5 __import__(foo)
 6 __import__(foo)
 7 ‘‘‘
 8 # euqal to "from foo import act"
 9 f = __import__(‘foo‘, fromlist=(‘act‘,))
10 f.act()
11 ‘‘‘

 

Python_Tips[0] -> 关于 import

标签:模块   int   删除   说明   def   his   pytho   this   class   

原文地址:https://www.cnblogs.com/stacklike/p/8193377.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!