2014-05-12 68 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

十分感謝,非常明確的解釋。 –

相關問題