簡體   English   中英

在Python中從模塊導入特定函數的要點

[英]Point of importing an specific function from a module in Python

那么標題有點自我解釋。 如果我導入以下內容:

 import urllib.request

來自urllib的其他函數也可以在urllib.parse,urllib.error等腳本中使用。 那么與導入整個事物有何不同:

import urllib

示例可能看起來很簡單,但有時我有一個更大的樹,其中包含多個嵌套模塊和包,如果我想:

import level1.level2.level3.level4

我應該只導入level1並導入整個樹嗎?

沒有區別:

$ 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM