欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

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

一、模塊

Python 模塊(Module),是一個 Python 文件,以 .py 結(jié)尾,包含了 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. 調(diào)?功能
模塊名.功能名()

體驗:

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

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

解決辦法如下:

def testA(a, b): 
 print(a + b) 
# 只在當前?件中調(diào)?該函數(shù),其他導?的?件內(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 注意事項

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

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

體驗:

# 模塊1代碼
def my_test(a, b):
 print(a + b)
# 模塊2代碼
def my_test(a, b):
 print(a - b)
# 導?模塊和調(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 模塊的定位順序

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

1. 當前目錄

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

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

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

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

注意

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

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語法中有的概念。

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

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

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

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

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

三、包

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

3.1 制作包

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

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

快速體驗

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 導入包

方法一

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()

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

相關(guān)文章

  • python“靜態(tài)”變量、實例變量與本地變量的聲明示例

    python“靜態(tài)”變量、實例變量與本地變量的聲明示例

    這篇文章主要給大家介紹了關(guān)于python“靜態(tài)”變量、實例變量與本地變量的聲明的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • Python常用內(nèi)置函數(shù)和關(guān)鍵字使用詳解

    Python常用內(nèi)置函數(shù)和關(guān)鍵字使用詳解

    在Python中有許許多多的內(nèi)置函數(shù)和關(guān)鍵字,它們是我們?nèi)粘V薪?jīng)常可以使用的到的一些基礎(chǔ)的工具,可以方便我們的工作。本文將詳細講解他們的使用方法,需要的可以參考一下
    2022-05-05
  • 在Django的視圖(View)外使用Session的方法

    在Django的視圖(View)外使用Session的方法

    這篇文章主要介紹了在Django的視圖(View)外使用Session的方法,Django是最具人氣的Python web開發(fā)框架,需要的朋友可以參考下
    2015-07-07
  • python連接字符串的方法小結(jié)

    python連接字符串的方法小結(jié)

    這篇文章主要介紹了python連接字符串的方法,實例總結(jié)了幾種常用的Python連接字符串的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-07-07
  • python多線程性能測試之快速mock數(shù)據(jù)

    python多線程性能測試之快速mock數(shù)據(jù)

    這篇文章主要為大家介紹了python多線程性能測試之快速mock數(shù)據(jù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • Python運算符的使用簡單介紹

    Python運算符的使用簡單介紹

    這篇文章主要介紹了Python運算符的使用簡單介紹,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的朋友可以參考一下
    2022-08-08
  • Django 允許局域網(wǎng)中的機器訪問你的主機操作

    Django 允許局域網(wǎng)中的機器訪問你的主機操作

    這篇文章主要介紹了Django 允許局域網(wǎng)中的機器訪問你的主機實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • Python實現(xiàn)五子棋聯(lián)機對戰(zhàn)小游戲

    Python實現(xiàn)五子棋聯(lián)機對戰(zhàn)小游戲

    本文主要介紹了通過Python實現(xiàn)簡單的支持聯(lián)機對戰(zhàn)的游戲——支持局域網(wǎng)聯(lián)機對戰(zhàn)的五子棋小游戲。廢話不多說,快來跟隨小編一起學習吧
    2021-12-12
  • python圖像處理入門(一)

    python圖像處理入門(一)

    這篇文章主要介紹了python圖像處理入門,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • 華為校園招聘上機筆試題 撲克牌大?。╬ython)

    華為校園招聘上機筆試題 撲克牌大?。╬ython)

    這篇文章主要為大家詳細介紹了華為校園招聘上機筆試題:撲克牌大小,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06

最新評論