最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

詳細(xì)一文帶你分清Python中的模塊、包和庫(kù)

 更新時(shí)間:2023年08月17日 11:25:38   作者:程序員樹(shù)先生  
這篇文章主要介紹了詳細(xì)一文帶你分清Python中的模塊、包和庫(kù),Python?模塊(Module),是一個(gè)?Python?文件,以?.py?結(jié)尾,包含了?Python?對(duì)象定義和Python語(yǔ)句,模塊能定義函數(shù),類(lèi)和變量,模塊也能包含可執(zhí)行的代碼,需要的朋友可以參考下

一、模塊

Python 模塊(Module),是一個(gè) Python 文件,以 .py 結(jié)尾,包含了 Python 對(duì)象定義和Python語(yǔ)句。

模塊能定義函數(shù),類(lèi)和變量,模塊也能包含可執(zhí)行的代碼。

1.1 導(dǎo)入模塊

1.1.1 導(dǎo)入模塊的方式

  • import 模塊名
  • from 模塊名 import 功能名
  • from 模塊名 import *
  • import 模塊名 as 別名
  • from 模塊名 import 功能名 as 別名

1.1.2 導(dǎo)入方式詳解

import 語(yǔ)法:

# 1. 導(dǎo)?模塊
import 模塊名
import 模塊名1, 模塊名2...
# 2. 調(diào)?功能
模塊名.功能名()

體驗(yàn):

import math
print(math.sqrt(9)) # 3.0

from..import..

語(yǔ)法:

from 模塊名 import 功能1, 功能2, 功能3...

體驗(yàn):

from math import sqrt 
print(sqrt(9))

from..import *

語(yǔ)法

from 模塊名 import *

體驗(yàn):

from math import *
print(sqrt(9))

as定義別名

語(yǔ)法

# 模塊定義別名
import 模塊名 as 別名
# 功能定義別名
from 模塊名 import 功能 as 別名

體驗(yàn)

# 模塊別名
import time as tt
tt.sleep(2)
print('hello')
# 功能別名
from time import sleep as sl
sl(2)
print('hello')

1.2 制作模塊

在Python中,每個(gè)Python文件都可以作為一個(gè)模塊,模塊的名字就是文件的名字。

也就是說(shuō)定義模塊名必須要符合標(biāo)識(shí)符命名規(guī)則。

1.2.1 定義模塊

新建一個(gè)Python文件,命名為 my_module1.py ,并定義 testA 函數(shù)。

def testA(a, b):
 print(a + b)

1.2.2 測(cè)試模塊

在實(shí)際開(kāi)中,當(dāng)一個(gè)開(kāi)發(fā)員編寫(xiě)完一個(gè)模塊后,為了讓模塊能夠在項(xiàng)目中達(dá)到想要的效果,這個(gè)開(kāi)發(fā)員會(huì)在py文件中添加一些測(cè)試信息

例如,在 my_module1.py 文件中添加測(cè)試代碼。

def testA(a, b):
 print(a + b)
testA(1, 1) 12345

此時(shí),無(wú)論是當(dāng)前文件,還是其他已經(jīng)導(dǎo)入了該模塊的?件,在運(yùn)行的時(shí)候都會(huì)自動(dòng)執(zhí)行 testA 函數(shù)的調(diào)用。

解決辦法如下:

def testA(a, b): 
 print(a + b) 
# 只在當(dāng)前?件中調(diào)?該函數(shù),其他導(dǎo)?的?件內(nèi)不符合該條件,則不執(zhí)?testA函數(shù)調(diào)? 
if __name__ == '__main__': 
 testA(1, 1)

1.2.3 調(diào)用模塊

import my_module1
my_module1.testA(1, 1)

1.2.4 注意事項(xiàng)

如果使用 from .. import .. 或 from .. import * 導(dǎo)入多個(gè)模塊的時(shí)候,且模塊內(nèi)有同名功能。

當(dāng)調(diào) ?這個(gè)同名功能的時(shí)候,調(diào)用到的是后導(dǎo)入的模塊的功能。

體驗(yàn):

# 模塊1代碼
def my_test(a, b):
 print(a + b)
# 模塊2代碼
def my_test(a, b):
 print(a - b)
# 導(dǎo)?模塊和調(diào)?功能代碼
from my_module1 import my_test
from my_module2 import my_test
# my_test函數(shù)是模塊2中的函數(shù)
my_test(1, 1)

1.3 模塊的定位順序

當(dāng)導(dǎo)入一個(gè)模塊,Python解析器對(duì)模塊位置的搜索順序是:

1. 當(dāng)前目錄

2. 如果不在當(dāng)前目錄,Python則搜索在shell變量PYTHONPATH下的每個(gè)目錄。

3. 如果都找不到,Python會(huì)察看默認(rèn)路徑。UNIX下,默認(rèn)路徑?般為/usr/local/lib/python/

模塊搜索路徑存儲(chǔ)在system模塊的sys.path變量中。

變量包含當(dāng)前目錄,PYTHONPATH和由安裝過(guò) 程決定的默認(rèn)目錄。

注意

  • ??的?件名不要和已有模塊名重復(fù),否則導(dǎo)致模塊功能用法使用
  • 使用from 模塊名 import 功能 的時(shí)候,如果功能名字重復(fù),調(diào)用到的是最后定義或?qū)氲墓?能。

1.4 __all__

如果一個(gè)模塊文件中有 __all__ 變量,當(dāng)使用 from xxx import * 導(dǎo)入時(shí),只能導(dǎo)入這個(gè)列表中的元素。

my_module1模塊代碼:

__all__ = ['testA']
def testA():
 print('testA')
def testB():
 print('testB')

導(dǎo)入模塊的文件代碼:

from my_module1 import * 
testA() 
testB()

 二、庫(kù)

嚴(yán)格來(lái)說(shuō),Python中沒(méi)有庫(kù)(library)的概念,模塊(module)和包(package)才是Python語(yǔ)法中有的概念。

這個(gè)庫(kù)的概念是從其他編程語(yǔ)言引進(jìn)來(lái)的,庫(kù)的概念是具有相關(guān)功能模塊的集合,只是一個(gè)通俗的說(shuō)法。

平時(shí)說(shuō)的庫(kù)既可以是一個(gè)模塊,也可以是一個(gè)包。

包和模塊之間的關(guān)系,如下圖:

 一個(gè)包里面可以包含很多的模塊。

模塊是一個(gè)包含有組織的代碼片段,一個(gè).py文件對(duì)應(yīng)一個(gè)模塊,文件名就是模塊名(去除掉后綴.py)。

三、包

包將有聯(lián)系的模塊組織在一起,即放到同一個(gè)文件夾下,并且在這個(gè)文件夾創(chuàng)建一個(gè)名字 為 __init__.py 文件,那么這個(gè)文件夾就稱(chēng)之為包。

3.1 制作包

[New] — [Python Package] — 輸入包名 — [OK] — 新建功能模塊(有聯(lián)系的模塊)。

注意:新建包后,包內(nèi)部會(huì)自動(dòng)創(chuàng)建 __init__.py 文件,這個(gè)文件控制著包的導(dǎo)入。

快速體驗(yàn)

1. 新建包 mypackage

2. 新建包內(nèi)模塊: my_module1 和 my_module2

3. 模塊內(nèi)代碼如下

# my_module1
print(1)
def info_print1():
 print('my_module1')
# my_module2
print(2)
def info_print2():
 print('my_module2')

3.2 導(dǎo)入包

方法一

import 包名.模塊名包名.模塊名.?標(biāo)

快速體驗(yàn)

import my_package.my_module1
my_package.my_module1.info_print1()

方法二

注意:必須在 __init__.py ?件中添加 __all__ = [] ,控制允許導(dǎo)?的模塊列表。

from 包名 import *模塊名.?標(biāo)

快速體驗(yàn)

from my_package import * 
my_module1.info_print1()

到此這篇關(guān)于詳細(xì)一文帶你分清Python中的模塊、包和庫(kù)的文章就介紹到這了,更多相關(guān)Python中的模塊、包和庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python自動(dòng)發(fā)郵件腳本

    Python自動(dòng)發(fā)郵件腳本

    本文主要介紹了Python自動(dòng)發(fā)郵件腳本的相關(guān)知識(shí)。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-03-03
  • tf.nn.conv2d與tf.layers.conv2d的區(qū)別及說(shuō)明

    tf.nn.conv2d與tf.layers.conv2d的區(qū)別及說(shuō)明

    這篇文章主要介紹了tf.nn.conv2d與tf.layers.conv2d的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Django緩存Cache使用詳解

    Django緩存Cache使用詳解

    這篇文章主要介紹了Django緩存Cache使用詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-11-11
  • pandas DataFrame rsub的實(shí)現(xiàn)示例

    pandas DataFrame rsub的實(shí)現(xiàn)示例

    本文主要介紹了pandas DataFrame rsub的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2025-04-04
  • django使用django-apscheduler 實(shí)現(xiàn)定時(shí)任務(wù)的例子

    django使用django-apscheduler 實(shí)現(xiàn)定時(shí)任務(wù)的例子

    今天小編就為大家分享一篇django使用django-apscheduler 實(shí)現(xiàn)定時(shí)任務(wù)的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-07-07
  • Python中的numpy數(shù)組模塊

    Python中的numpy數(shù)組模塊

    這篇文章介紹了Python中的numpy數(shù)組模塊,文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-05-05
  • Python爬蟲(chóng)學(xué)習(xí)之翻譯小程序

    Python爬蟲(chóng)學(xué)習(xí)之翻譯小程序

    這篇文章主要為大家詳細(xì)介紹了Python爬蟲(chóng)學(xué)習(xí)之翻譯小程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • Python OpenCV實(shí)現(xiàn)邊緣檢測(cè)

    Python OpenCV實(shí)現(xiàn)邊緣檢測(cè)

    這篇文章主要為大家詳細(xì)介紹了Python OpenCV實(shí)現(xiàn)邊緣檢測(cè),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-08-08
  • python使用wmi模塊獲取windows下的系統(tǒng)信息 監(jiān)控系統(tǒng)

    python使用wmi模塊獲取windows下的系統(tǒng)信息 監(jiān)控系統(tǒng)

    Python用WMI模塊獲取Windows系統(tǒng)的硬件信息:硬盤(pán)分區(qū)、使用情況,內(nèi)存大小,CPU型號(hào),當(dāng)前運(yùn)行的進(jìn)程,自啟動(dòng)程序及位置,系統(tǒng)的版本等信息。
    2015-10-10
  • Python函數(shù)的返回值、匿名函數(shù)lambda、filter函數(shù)、map函數(shù)、reduce函數(shù)用法實(shí)例分析

    Python函數(shù)的返回值、匿名函數(shù)lambda、filter函數(shù)、map函數(shù)、reduce函數(shù)用法實(shí)例分析

    這篇文章主要介紹了Python函數(shù)的返回值、匿名函數(shù)lambda、filter函數(shù)、map函數(shù)、reduce函數(shù)用法,結(jié)合實(shí)例形式分析了Python函數(shù)的返回值、匿名函數(shù)lambda、filter函數(shù)、map函數(shù)、reduce函數(shù)相關(guān)功能、原理與使用技巧,需要的朋友可以參考下
    2019-12-12

最新評(píng)論

都匀市| 石泉县| 宾川县| 疏勒县| 云安县| 仁化县| 沙田区| 洛宁县| 阳东县| 绥中县| 武冈市| 五家渠市| 南川市| 墨脱县| 金秀| 武强县| 岳阳县| 大英县| 南岸区| 东丽区| 太和县| 岱山县| 高邮市| 宁陵县| 开封县| 诸暨市| 大丰市| 浙江省| 平潭县| 白山市| 安多县| 上思县| 朝阳县| 吴旗县| 金塔县| 于田县| 延安市| 长宁区| 陕西省| 南城县| 安顺市|