2014-05-12 54 views
4

那么标题有点自我解释。如果我输入以下内容:从Python中的模块导入特定函数的一点

import urllib.request 

从urllib的其他功能将像的urllib.parse,urllib.error里的脚本也可用。因此,如何是从导入整个事物的不同:

import urllib 

的例子看似简单,但有时我有多个嵌套模块和包一个更大的树,如果我想:

import level1.level2.level3.level4 

我应该只导入level1并导入整棵树吗?

回答

2

没有区别:

$ python3.2 
Python 3.2.5 (default, Mar 10 2014, 10:39:23) 
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.2.79)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import urllib 
>>> import urllib.request as urllib_request 
>>> urllib.request is urllib_request 
True 

两个import urllibimport urllib.request进口模块

然而,表格:from <module> import <object>会导入所述模块并将对象返回到您当前的命名空间或模块中。

实施例:

$ python3.2 
Python 3.2.5 (default, Mar 10 2014, 10:39:23) 
[GCC 4.2.1 Compatible Apple LLVM 5.0 (clang-500.2.79)] on darwin 
Type "help", "copyright", "credits" or "license" for more information. 
>>> from urllib.request import urlopen 
>>> urlopen 
<function urlopen at 0x1015f6af0> 

注意urlopen是一个函数。还要注意:

>>> import sys 
>>> sys.modules["urllib"] 
<module 'urllib' from '/usr/local/Cellar/python32/3.2.5/Frameworks/Python.framework/Versions/3.2/lib/python3.2/urllib/__init__.py'> 
>>> sys.modules["urllib.request"] 
<module 'urllib.request' from '/usr/local/Cellar/python32/3.2.5/Frameworks/Python.framework/Versions/3.2/lib/python3.2/urllib/request.py'> 

通过导入urllib.request.urlopen还导入模块:urlliburllib.request

参见:https://docs.python.org/3.4/tutorial/modules.html

+0

十分感谢,非常明确的解释。 –

相关问题