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

詳細一文帶你分清Python中的模塊、包和庫

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

一、模塊

Python 模塊(Module),是一個 Python 文件,以 .py 結尾,包含了 Python 對象定義和Python語句。

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

1.1 導入模塊

1.1.1 導入模塊的方式

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

1.1.2 導入方式詳解

import 語法:

# 1. 導?模塊
import 模塊名
import 模塊名1, 模塊名2...
# 2. 調?功能
模塊名.功能名()

體驗:

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

from..import..

語法:

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

體驗:

from math import sqrt 
print(sqrt(9))

from..import *

語法

from 模塊名 import *

體驗:

from math import *
print(sqrt(9))

as定義別名

語法

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

體驗

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

1.2 制作模塊

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

也就是說定義模塊名必須要符合標識符命名規(guī)則。

1.2.1 定義模塊

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

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

1.2.2 測試模塊

在實際開中,當一個開發(fā)員編寫完一個模塊后,為了讓模塊能夠在項目中達到想要的效果,這個開發(fā)員會在py文件中添加一些測試信息

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

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

此時,無論是當前文件,還是其他已經導入了該模塊的?件,在運行的時候都會自動執(zhí)行 testA 函數(shù)的調用。

解決辦法如下:

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

1.2.3 調用模塊

import my_module1
my_module1.testA(1, 1)

1.2.4 注意事項

如果使用 from .. import .. 或 from .. import * 導入多個模塊的時候,且模塊內有同名功能。

當調 ?這個同名功能的時候,調用到的是后導入的模塊的功能。

體驗:

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

1.3 模塊的定位順序

當導入一個模塊,Python解析器對模塊位置的搜索順序是:

1. 當前目錄

2. 如果不在當前目錄,Python則搜索在shell變量PYTHONPATH下的每個目錄。

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

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

變量包含當前目錄,PYTHONPATH和由安裝過 程決定的默認目錄。

注意

  • ??的?件名不要和已有模塊名重復,否則導致模塊功能用法使用
  • 使用from 模塊名 import 功能 的時候,如果功能名字重復,調用到的是最后定義或導入的功 能。

1.4 __all__

如果一個模塊文件中有 __all__ 變量,當使用 from xxx import * 導入時,只能導入這個列表中的元素。

my_module1模塊代碼:

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

導入模塊的文件代碼:

from my_module1 import * 
testA() 
testB()

 二、庫

嚴格來說,Python中沒有庫(library)的概念,模塊(module)和包(package)才是Python語法中有的概念。

這個庫的概念是從其他編程語言引進來的,庫的概念是具有相關功能模塊的集合,只是一個通俗的說法。

平時說的庫既可以是一個模塊,也可以是一個包。

包和模塊之間的關系,如下圖:

 一個包里面可以包含很多的模塊。

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

三、包

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

3.1 制作包

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

注意:新建包后,包內部會自動創(chuàng)建 __init__.py 文件,這個文件控制著包的導入。

快速體驗

1. 新建包 mypackage

2. 新建包內模塊: my_module1 和 my_module2

3. 模塊內代碼如下

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

3.2 導入包

方法一

import 包名.模塊名包名.模塊名.?標

快速體驗

import my_package.my_module1
my_package.my_module1.info_print1()

方法二

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

from 包名 import *模塊名.?標

快速體驗

from my_package import * 
my_module1.info_print1()

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

相關文章

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

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

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

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

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

    Django緩存Cache使用詳解

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

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

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

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

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

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

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

    Python爬蟲學習之翻譯小程序

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

    Python OpenCV實現(xiàn)邊緣檢測

    這篇文章主要為大家詳細介紹了Python OpenCV實現(xiàn)邊緣檢測,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    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)的硬件信息:硬盤分區(qū)、使用情況,內存大小,CPU型號,當前運行的進程,自啟動程序及位置,系統(tǒng)的版本等信息。
    2015-10-10
  • Python函數(shù)的返回值、匿名函數(shù)lambda、filter函數(shù)、map函數(shù)、reduce函數(shù)用法實例分析

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

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

最新評論

平山县| 辽宁省| 永仁县| 黔南| 香河县| 鸡泽县| 榆社县| 日喀则市| 奉新县| 上饶市| 辽阳市| 广平县| 泸州市| 平邑县| 剑川县| 上杭县| 阿勒泰市| 南漳县| 区。| 蛟河市| 柞水县| 普陀区| 镇巴县| 泊头市| 杨浦区| 嘉荫县| 榆树市| 临江市| 闽清县| 双鸭山市| 北海市| 阳朔县| 城口县| 嘉义县| 荔波县| 鞍山市| 库尔勒市| 峨边| 施秉县| 塔河县| 西青区|