成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

python模塊與包的導(dǎo)入

一、模塊

何為模塊?

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

我們提供的服務(wù)有:網(wǎng)站制作、成都網(wǎng)站制作、微信公眾號開發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認證、西湖ssl等。為上千余家企事業(yè)單位解決了網(wǎng)站和推廣的問題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的西湖網(wǎng)站制作公司

為何使用模塊?

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

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

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

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

import將整個模塊對象賦值給一個變量名
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語句

from將一個或多個變量名賦值給另一個模塊中同名的對象
1、from 模塊名 import 變量名
直接使用變量名就可以完成操作
如果本文件中有相同的變量名會發(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)存中
如果本文件中有相同的變量名會發(fā)生沖突

>>> from os import path,kill

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

模塊導(dǎo)入流程

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

何為模塊命名空間

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

二、包

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

包的導(dǎo)入

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

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

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

init.py文件

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

包的初始化

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

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

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

from ..import pic

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

三、name變量

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

分享題目:python模塊與包的導(dǎo)入
轉(zhuǎn)載來源:http://jinyejixie.com/article44/ggseee.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、面包屑導(dǎo)航移動網(wǎng)站建設(shè)、定制開發(fā)、企業(yè)網(wǎng)站制作、

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

商城網(wǎng)站建設(shè)
虹口区| 固阳县| 纳雍县| 边坝县| 册亨县| 洛南县| 武清区| 丰镇市| 广平县| 武清区| 雅安市| 隆安县| 通辽市| 青海省| 盐源县| 成武县| 海伦市| 班戈县| 蒙阴县| 朝阳区| 商丘市| 丰镇市| 苍山县| 雅江县| 彭水| 象州县| 科技| 常山县| 竹山县| 张掖市| 大连市| 乌拉特后旗| 呼图壁县| 襄垣县| 南丰县| 衡阳市| 吴旗县| 平安县| 施秉县| 宕昌县| 松潘县|