Python中的import

來源:互聯網
上載者:User

標籤:prim   尾碼   ini   空間   pack   開頭   組成   編譯   var   

   模組(module):用來從邏輯(實現一個功能)上組織Python代碼(變數、函數、類),本質就是*.py檔案。檔案是物理上組織方式"module_name.py",模組是邏輯上組織方式"module_name"。

   包(package):定義了一個由模組和子包組成的Python應用程式執行環境,本質就是一個有層次的檔案目錄結構(必須帶有一個__init__.py檔案)。

   package:目錄,包下面必須有一個__init__.py檔案,否則只是一個單純的目錄,不算是一個包
     module:py檔案

匯入方式有以下幾種:
#①採用from...import方式
  from 包絕對路徑 from 模組py檔案

  from package.subpackage1 import foo1

  from 模組 import 變數

  from 包 import 子包


#②採用import方式

  import package.subpackage1

  import 模組

  匯入函數、變數、類只能使用from ... import ... 方式。

  如果匯入的是一個包而不是一個模組,則python引擎會去執行這個包的目錄下的__init__.py,此時這個檔案中可能是一些匯入的語句,例如:

  import Primitive, Graph2d, Graph3d,標紅的三個都為模組的名字。

  如果是模糊匯入,例如:from Root.Pack1 import *,Pack1為一個包,則引擎會讀取Pack1下的__init__.py檔案,根據該檔案裡面的__all__變數匯入相應的模組。

  第一次匯入一個模組時,模組中的程式會被執行一次,下一次再匯入則不會再執行了。

  模組在Python可理解為對應於一個檔案。在建立了一個指令檔後,定義了某些函數和變數。你在其他需要這些功能的檔案中,匯入這模組,就可重用這些函數和變數。一般用module_name.fun_name,和module_name.var_name進行使用。這樣的語義用法使模組看起來很像類或者名字空間,可將module_name 理解為名字限定符。模組名就是檔案名稱去掉.py尾碼。

  from module import names  可以直接從模組中匯入名字到符號表,但模組名字不會被匯入。  from module import *     可以把模組中的所有名字全部匯入,除了那些以底線開頭的名字元號。不建議使用,不清楚匯入了什麼符號,有可能覆蓋自己定義的東西

  pyc檔案是py檔案編譯成的位元組碼檔案,在匯入一個模組的時候會自動在py檔案的目錄下產生pyc檔案,pyc主要為了可重用模組的效率,因此,只有使用import或者from ... import ... 匯入一個模組的時候才會產生pyc。匯入的模組被認為是可重用的模組,而直接執行一個py檔案時是不會產生pyc檔案的。

Python中的import

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.