真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python模塊與包的導(dǎo)入-創(chuàng)新互聯(lián)

一、模塊

何為模塊?

模塊是最高級(jí)別的程序組織單元;在python中,模塊一般是python或C或Java等語(yǔ)言編寫的擴(kuò)展文件,這個(gè)擴(kuò)展文件可以被導(dǎo)入使用。

創(chuàng)新互聯(lián)是一家專注于成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)與策劃設(shè)計(jì),金臺(tái)網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)10年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:金臺(tái)等地區(qū)。金臺(tái)做網(wǎng)站價(jià)格咨詢:13518219792

為何使用模塊?

模塊首先是一個(gè)文件,這個(gè)文件可以在多種環(huán)境下任意次數(shù)地重新載入和重新運(yùn)行,這就是說(shuō),模塊可被重用;其次,模塊作為python中最高級(jí)別的程序組織單元,在每一次導(dǎo)入時(shí),客戶端只需導(dǎo)入模塊,就能使用模塊定義的變量名以及變量名所引用的對(duì)象。

模塊的導(dǎo)入前提

1、導(dǎo)入模塊是由python自身提供的,在python標(biāo)準(zhǔn)鏈接庫(kù)中。
2、模塊導(dǎo)入的兩個(gè)語(yǔ)句(import和from)
3、初次導(dǎo)入模塊時(shí),需要先找到要導(dǎo)入的模塊文件,在sys.path的路徑中
尋找。
4、python把載入的模塊存儲(chǔ)到sys.modules中,在每次導(dǎo)入操作開始前檢查該字典,如果不存在,會(huì)執(zhí)行導(dǎo)入操作,如果存在,不執(zhí)行任何操作。
5、模塊文件的選擇:如要導(dǎo)入的模塊在sys.path字典的第一個(gè)路徑和第三個(gè)路徑中同時(shí)出現(xiàn),只會(huì)導(dǎo)入第一個(gè)路徑中的模塊。

模塊導(dǎo)入之import語(yǔ)句

import將整個(gè)模塊對(duì)象賦值給一個(gè)變量名
1、import 模塊名

>>> import sys
>>> print(sys.path)
['', 'C:\\Python37\\python37.zip', 'C:\\Python37\\DLLs', 'C:\\Python37\\lib', 'C:\\Python37', 'C:\\Python37\\lib\\site-packages']

2、import 模塊名 as 別名

>>> import sys as systemctl
>>> print(systemctl.path)
['', 'C:\\Python37\\python37.zip', 'C:\\Python37\\DLLs', 'C:\\Python37\\lib', 'C:\\Python37', 'C:\\Python37\\lib\\site-packages']

3、import 模塊1,模塊2

>>> import sys,os

模塊導(dǎo)入之from語(yǔ)句

from將一個(gè)或多個(gè)變量名賦值給另一個(gè)模塊中同名的對(duì)象
1、from 模塊名 import 變量名
直接使用變量名就可以完成操作
如果本文件中有相同的變量名會(huì)發(fā)生沖突

>>> from sys import path
>>> print(path)
['', 'C:\\Python37\\python37.zip', 'C:\\Python37\\DLLs', 'C:\\Python37\\lib', 'C:\\Python37', 'C:\\Python37\\lib\\site-packages']

2、from 模塊名 import 變量名字 as 別名

>>> from sys import path as systempath
>>> print(systempath)
['', 'C:\\Python37\\python37.zip', 'C:\\Python37\\DLLs', 'C:\\Python37\\lib', 'C:\\Python37', 'C:\\Python37\\lib\\site-packages']

3、from 模塊名 import 變量1,變量2

>>> from os import path,kill

4、from 模塊名 import *
將模塊中的所有變量名都放到內(nèi)存中
如果本文件中有相同的變量名會(huì)發(fā)生沖突

>>> from os import path,kill

5、from 模塊名 import * 和all
沒(méi)有all這個(gè)變量就會(huì)導(dǎo)入所有的變量
如果有all變量,只導(dǎo)入all列表中的變量

模塊導(dǎo)入流程

1、先從sys.modules里查看是否已經(jīng)被導(dǎo)入
2、在sys.path的目錄中找到模塊
3、創(chuàng)建這個(gè)模塊的命名空間
4、把文件中的名字放入命名空間

何為模塊命名空間

每一個(gè)模塊就是一個(gè)命名空間,存在于模塊之內(nèi)的變量名就是模塊對(duì)象的屬性
1、模塊語(yǔ)句會(huì)在首次導(dǎo)入時(shí)執(zhí)行
2、頂層的賦值語(yǔ)句會(huì)創(chuàng)建模塊屬性
3、模塊的命名空間能通過(guò)屬性dict或dir()來(lái)獲取
4、模塊文件的作用域就是模塊對(duì)象的屬性的命名空間,即每一個(gè)模塊都是獨(dú)立的作用域

二、包

我們知道通過(guò)import和from語(yǔ)句可以導(dǎo)入模塊,用法時(shí)直接在語(yǔ)句后跟要導(dǎo)入的模塊名,那么我們?nèi)绻獙?dǎo)入目錄路徑呢?也是可以的,python代碼的目錄就稱為包,因此,這類導(dǎo)入稱之為包導(dǎo)入。包導(dǎo)入是將要導(dǎo)入的目錄創(chuàng)建為一個(gè)新的命名空間,目錄中的子目錄和模塊文件就是命名空間的屬性。

包的導(dǎo)入

包的導(dǎo)入與模塊的導(dǎo)入類似,只是加上了目錄層級(jí)

import dir1.dir2.pic
from dir1.dir2 import pic

導(dǎo)入包的路徑與導(dǎo)入模塊一致
就是說(shuō)dir1所在的目錄必須在sys.path中

init.py文件

包導(dǎo)入語(yǔ)句的路徑中的每個(gè)目錄內(nèi)都必須有init.py文件,否則導(dǎo)入包就會(huì)失??;示例中dir1和dir2的目錄下必須有init.py文件

包的初始化

導(dǎo)入包時(shí),會(huì)自動(dòng)執(zhí)行該目錄下init.py文件中的所有代碼,因此這個(gè)文件是放置導(dǎo)入包時(shí)初始化的代碼,比如寫入導(dǎo)入其他目錄及模塊

包的相對(duì)路徑導(dǎo)入

在上面的導(dǎo)入中,是從頂層目錄向下逐步找到要導(dǎo)入的文件的,給出的是絕對(duì)路徑;包也可以相對(duì)路徑導(dǎo)入,類似于linux系統(tǒng)中 “.” 與“..”。

from ..import pic

相對(duì)導(dǎo)入只適用于包內(nèi)部導(dǎo)入,且只適用于from語(yǔ)句
init文件中如使用相對(duì)路徑導(dǎo)入,在包的外部導(dǎo)入沒(méi)問(wèn)題,在包內(nèi)部使用也需使用相對(duì)路徑
如使用絕對(duì)路徑導(dǎo)入,在內(nèi)部或外部使用都沒(méi)問(wèn)題

三、name變量

在模塊中有個(gè)變量name
當(dāng)我們直接執(zhí)行這個(gè)模塊的時(shí)候,name=='main'
當(dāng)我們執(zhí)行其他模塊,在其他模塊中引用這個(gè)模塊的時(shí)候,這個(gè)模塊中的name=='模塊的名字'

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


分享名稱:python模塊與包的導(dǎo)入-創(chuàng)新互聯(lián)
本文地址:http://weahome.cn/article/jgeeg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部