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

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

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

一、模塊

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

模塊能定義函數(shù),類和變量,模塊也能包含可執(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í)際開中,當(dāng)一個(gè)開發(fā)員編寫完一個(gè)模塊后,為了讓模塊能夠在項(xiàng)目中達(dá)到想要的效果,這個(gè)開發(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è)文件夾就稱之為包。

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“靜態(tài)”變量、實(shí)例變量與本地變量的聲明示例

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

    這篇文章主要給大家介紹了關(guān)于python“靜態(tài)”變量、實(shí)例變量與本地變量的聲明的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    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ǔ)的工具,可以方便我們的工作。本文將詳細(xì)講解他們的使用方法,需要的可以參考一下
    2022-05-05
  • 在Django的視圖(View)外使用Session的方法

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

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

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

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

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

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

    Python運(yùn)算符的使用簡(jiǎn)單介紹

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

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

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

    Python實(shí)現(xiàn)五子棋聯(lián)機(jī)對(duì)戰(zhàn)小游戲

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

    python圖像處理入門(一)

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

    華為校園招聘上機(jī)筆試題 撲克牌大小(python)

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

最新評(píng)論