Python基礎----import模組匯入和包的調用

來源:互聯網
上載者:User

標籤:pre   pytho   mod   注意   nod   否則   port   技術   檔案夾   

模組概念

在Python中,一個.py檔案就稱之為一個模組(Module)。使用模組組織代碼,最大的好處是大大提高了代碼的可維護性

模組一共三種:python標準庫、第三方模組、應用程式自訂模組。

相同名字的函數和變數完全可以分別存在不同的模組中,因此,我們自己在編寫模組時,不必考慮名字會與其他模組衝突。但是也要注意,盡量不要與內建函數名字衝突。

模組匯入

import語句

1 import module1[, module2[,... moduleN]

使用import語句時候,Python解譯器通過sys.path的路徑搜尋。

每次import的時候,都會相應的開闢記憶體空間存放被import的內容,但是與調用import的檔案開闢的記憶體空間相互獨立。例如import foo.py在建立的名稱空間裡執行源檔案(foo.py)代碼時,所有對全域名稱空間的引用或修改,都是以foo.py為準。

注意:

一個模組可以在當前位置import多次,但是只有第一次匯入會執行內容,其他的都為引用記憶體

更改調用名稱:

1 import logging as log2 log.critical("www")

from...import語句

1 from modname import name1[, name2[, ... nameN]]

這個聲明不會把整個modulename模組匯入到當前的命名空間中,只會將它裡面的name1或name2單個引入到執行這個聲明的模組的全域符號表。

包的調用

為了避免模組名衝突,Python又引入了按目錄來組織模組的方法,稱為包(Package)。

每一個包目錄下面都會有一個__init__.py的檔案,這個檔案是必須存在的,否則,Python就把這個目錄當成普通目錄(檔案夾),而不是一個包。__init__.py可以是空檔案,也可以有Python代碼,因為__init__.py本身就是一個模組,而它的模組名就是對應包的名字。調用包就是執行包下的__init__.py檔案。

跨包調用(目前的目錄下有modulepack1包):

1 from modulepack1[.modulepack2] import module

如果目前的目錄下能夠找到要調用的包,可以直接from包import模組,如果目前的目錄找不到要調用的包,需要向sys.path添加包的所在絕對路徑。

import一個包名,就等於執行了這個包下的__init__檔案。

樣本:

在nod1裡import  hello是找不到的,需要手動添加包路徑,如果找到那是因為pycharm給加了不必要的路徑,以命令列執行為準。

1 import sys,os2 BASE_DIR=os.path.dirname(os.path.dirname(os.path.abspath(__file__)))  #__file__擷取執行檔案相對路徑,整行為取上一級的上一級目錄3 sys.path.append(BASE_DIR)  #添加路徑4 import hello5 hello.hello1()

模組調用測試

1 if __name__==‘__main__‘:  #__name__方法判斷2     print(‘ok‘)

在一個py模組直接執行print(__name__)會輸出__main__,表示當前這個檔案屬於執行檔案,如果從其他的py模組中匯入一個py模組,執行被匯入的py模組中的print(__name__)會輸出被匯入的模組的模組名稱,那麼if判斷就不會成功,所以匯入的時候不會執行判斷內的代碼。

主要用在調試功能,即一個模組被調用的時候不執行內容,而自己調試模組的時候可以順利的執行模組內容。

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.