国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python 模塊和包

這篇具有很好參考價(jià)值的文章主要介紹了python 模塊和包。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

python 模塊和包,python,python,開(kāi)發(fā)語(yǔ)言

前言

Python是一種簡(jiǎn)單易學(xué)、功能強(qiáng)大的編程語(yǔ)言,而其模塊和包的概念更是為我們提供了一種有效管理和組織代碼的方式。模塊是Python程序的基本組成單元,它是一個(gè)包含函數(shù)、變量和類(lèi)的文件。而包則是由多個(gè)模塊組成的一個(gè)目錄,可以幫助我們更好地組織和復(fù)用代碼。

在本系列的文章中,我們將從基礎(chǔ)知識(shí)開(kāi)始,逐步介紹Python模塊和包的概念、語(yǔ)法和使用方法。

模塊

什么是模塊

在Python中,模塊是一種組織和復(fù)用代碼的方式。它是一個(gè)包含函數(shù)、變量和類(lèi)的文件,以 .py 為文件擴(kuò)展名。模塊可以被其他程序?qū)牒褪褂?,以提供特定功能或?qū)崿F(xiàn)特定任務(wù)。

Python模塊使代碼更易于管理和組織,同時(shí)也促進(jìn)了代碼的可重用性。通過(guò)將相關(guān)的功能放入不同的模塊中,可以使代碼更具可讀性和可維護(hù)性。此外,模塊還可以幫助開(kāi)發(fā)人員對(duì)功能進(jìn)行封裝,以便在不同的項(xiàng)目中共享和復(fù)用代碼。

導(dǎo)入模塊

在 python 中,有以下的方式來(lái)導(dǎo)入模塊:

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

import 導(dǎo)入模塊

前面我們也見(jiàn)過(guò),當(dāng)我們生成隨機(jī)數(shù)的時(shí)候需要導(dǎo)入 random 模塊,那么在 python 中可以使用 import 模塊名 來(lái)導(dǎo)入模塊。

當(dāng)我們以 import 模塊名 的形式導(dǎo)入模塊的時(shí)候,使用 模塊名.功能 來(lái)使用模塊中的方法。

import random  # 導(dǎo)入random模塊

result = random.randint(1,10)  # 生成1-9之間的隨機(jī)數(shù)
print(result)

使用 import 模塊名 也可以導(dǎo)入多個(gè)模塊,但是不推薦 import 模塊1,模塊2...

from 模塊名 import 功能

我們使用 import 模塊名 導(dǎo)入的是該模塊下的所有代碼,我們也可以只導(dǎo)入該模塊下的指定方法,并且我們調(diào)用方法的時(shí)候可以直接使用方法,而不需要加模塊名。

from random import randint  # 導(dǎo)入random模塊下的randint方法

result = randint(1,10)
print(result)

from 模塊名 import *

from 模塊名 import 功能from 模塊名 import * 是相似的,只是前面一種導(dǎo)入方法,導(dǎo)入的是指定的功能,而后面一種方法導(dǎo)入的是該模塊下的所有方法,兩種導(dǎo)入方法調(diào)用功能的時(shí)候都只需使用功能() ,而不需要加上 模塊名.功能。

from math import *

print(sqrt(9))  # 3.0
print(pow(3,2))  # 9.0

as定義別名

如果我們覺(jué)得模塊名或者方法名太長(zhǎng)寫(xiě)的時(shí)候太麻煩的時(shí)候,我們可以使用別名。
import 模塊名 as 別名 來(lái)別名模塊名,from 模塊名 import 功能 as 別名 別名功能名。

import time as t
t.sleep(2)  # 程序會(huì)停止兩秒再結(jié)束
from time import sleep as slp
slp(2)

當(dāng)我們使用別名之后,之前的名字不能再繼續(xù)使用,否則會(huì)報(bào)錯(cuò)

from time import sleep as slp
sleep(2)

python 模塊和包,python,python,開(kāi)發(fā)語(yǔ)言

制作模塊

在Python中,每個(gè)Python文件都可以作為一個(gè)模塊,模塊的名字就是文件的名字。也就是說(shuō)自定義模塊名必須要符合標(biāo)識(shí)符命名規(guī)則。

我們創(chuàng)建一個(gè) python 文件,并且在該文件中定義一個(gè) add_num 方法。

python 模塊和包,python,python,開(kāi)發(fā)語(yǔ)言

我們可以對(duì)該模塊內(nèi)的 add_num 方法進(jìn)行測(cè)試,看方法是否能實(shí)現(xiàn)指定功能。

def add_num(a,b):
    return a + b

print(add_num(1,2))  # 3

每實(shí)現(xiàn)一個(gè)模塊中的方法,我們就需要進(jìn)行測(cè)試,那么當(dāng)我們測(cè)試完成之后,需不需要將測(cè)試代碼給刪除呢?如果不刪除會(huì)有什么影響呢?

我們?cè)?Test文件中導(dǎo)入該模塊并使用該模塊下的方法。
python 模塊和包,python,python,開(kāi)發(fā)語(yǔ)言
python 模塊和包,python,python,開(kāi)發(fā)語(yǔ)言

這里 3 很顯然是我們測(cè)試代碼里面的測(cè)試結(jié)果,import 模塊名 會(huì)將該模塊下的所有代碼都導(dǎo)入,但是我們刪除了測(cè)試代碼的話(huà),下次再測(cè)試又需要重新寫(xiě),那我們?cè)撛趺醋黾饶軐?shí)現(xiàn)測(cè)試功能,又不影響其他功能呢?

使用 if __ name __ == '__ main __': 作為條件,來(lái)使該代碼只會(huì)在該模塊下執(zhí)行,出來(lái)該模塊所在的文件就不會(huì)執(zhí)行測(cè)試代碼。

__ name __ 是系統(tǒng)變量,是模塊的標(biāo)識(shí)符,值是:如果是自身模塊,值是__ main __,否則是模塊所在的文件名

我們?cè)谀K所在文件打印 __ name __。
python 模塊和包,python,python,開(kāi)發(fā)語(yǔ)言
python 模塊和包,python,python,開(kāi)發(fā)語(yǔ)言

然后在導(dǎo)入該模塊的文件下運(yùn)行代碼。
python 模塊和包,python,python,開(kāi)發(fā)語(yǔ)言
python 模塊和包,python,python,開(kāi)發(fā)語(yǔ)言

我們?cè)谀K所在文件加上對(duì)應(yīng)條件并執(zhí)行代碼。

def add_num(a,b):
    return a + b

if __name__ == '__main__':
    print(add_num(1,2))  # 3

然后在導(dǎo)入該模塊的文件下調(diào)用該模塊的對(duì)應(yīng)方法。

import my_module1
print(my_module1.add_num(3,5))

python 模塊和包,python,python,開(kāi)發(fā)語(yǔ)言
python 模塊和包,python,python,開(kāi)發(fā)語(yǔ)言
這里并不會(huì)執(zhí)行我們的測(cè)試代碼,這樣就解決了我們的問(wèn)題。

注意:如果使用 from .. import ..from .. import * 導(dǎo)入多個(gè)模塊的時(shí)候,且模塊內(nèi)有同名功能。當(dāng)調(diào)用這個(gè)同名功能的時(shí)候,調(diào)用到的是后面導(dǎo)入的模塊的功能。

from my_module1 import add_num
print(add_num(-3,5))  # 2

def add_num(a,b):
    return abs(a) + abs(b)
from my_module1 import add_num

def add_num(a,b):
    return abs(a) + abs(b)
print(add_num(-3,5))  # 8

模塊的定位順序

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

  1. 當(dāng)前文件所在的目錄下的所有文件
  2. 如果不在當(dāng)前目錄,python 則搜索在shell變量pythonpath下的每個(gè)目錄
  3. 如果前面兩個(gè)路徑都找不到,python會(huì)查看默認(rèn)路徑

注意:

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

__ all __

但我們使用 from 模塊名 import * 導(dǎo)入模塊的時(shí)候,我們可以指定導(dǎo)入的方法,而不是全部方法,我們只需要在模塊中定義 __ all __ = ['方法1',‘方法2'] ,這樣就只會(huì)導(dǎo)入 __ all __ 中的方法。

__all__ = ['add_num']
def add_num(a,b):
    return a + b

if __name__ == '__main__':
    print(add_num(1,2))

def sub(a,b):
    return a - b

python 模塊和包,python,python,開(kāi)發(fā)語(yǔ)言

from my_module1 import *
print(sub(1,2))

python 模塊和包,python,python,開(kāi)發(fā)語(yǔ)言

這里會(huì)直接提示錯(cuò)誤。
python 模塊和包,python,python,開(kāi)發(fā)語(yǔ)言

Python包是一種用于組織和管理Python代碼的方式。它是一個(gè)包含模塊、子包和資源文件的目錄,可以在Python程序中被導(dǎo)入和使用。包的主要目的是將相關(guān)的功能和數(shù)據(jù)組織到一個(gè)單獨(dú)的單元中,以便于重用和維護(hù)。

一個(gè)包通常包含一個(gè)名為 __init__.py 的特殊文件,用于標(biāo)識(shí)該目錄為一個(gè)包。它可以包含其他Python模塊文件(以.py為擴(kuò)展名)和子包(也是一個(gè)包的目錄)。

在pycharm上如何創(chuàng)建包

python 模塊和包,python,python,開(kāi)發(fā)語(yǔ)言

當(dāng)我們創(chuàng)建完成一個(gè)包之后,我們會(huì)發(fā)現(xiàn)該包下會(huì)自動(dòng)產(chǎn)生一個(gè) __ init __.py 的文件。

python 模塊和包,python,python,開(kāi)發(fā)語(yǔ)言

導(dǎo)入包

我們首先需要在包下創(chuàng)建幾個(gè)模塊文件。

add_num.py

def add_num(a,b):
    return a + b

sub_num.py

def sub_num(a,b):
    return a - b

導(dǎo)入包有兩種方式:

  • import 包名.模塊
  • from 包名 import *

import 包名.模塊 導(dǎo)入包

當(dāng)我們使用 import 包名.模塊 導(dǎo)入包的時(shí)候,我們以 包名.模塊名.功能 來(lái)使用相關(guān)功能。

import mypackage.add_num
import mypackage.sub_num
print(mypackage.add_num.add_num(10,20))  # 30
print(mypackage.sub_num.sub_num(50,20))  # 30

from 包名 import * 導(dǎo)入包

當(dāng)我們使用 from 包名 import * 導(dǎo)入包的時(shí)候,我們需要在 __ init __.py 文件中添加 __ all __ = [ ] 來(lái)設(shè)置允許導(dǎo)入的模塊列表。

__all__ = ['add_num','sub_num']

使用 模塊名.功能 的方法來(lái)使用相應(yīng)的功能。

from mypackage import *
print(add_num.add_num(10,20))  # 30
print(sub_num.sub_num(50,20))  # 30

如果我們將 __ init __ 文件中的 __ all __ = [ ] 給刪除或者注釋掉的話(huà),會(huì)出現(xiàn)什么情況亂。
python 模塊和包,python,python,開(kāi)發(fā)語(yǔ)言
python 模塊和包,python,python,開(kāi)發(fā)語(yǔ)言
所以但我們使用 from 包名 import * 導(dǎo)入包的時(shí)候一定要記得設(shè)置 __ init __ 文件里的 __ all __ = [ ] 來(lái)設(shè)置允許導(dǎo)入的模塊列表。

python 模塊和包,python,python,開(kāi)發(fā)語(yǔ)言文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-568502.html

到了這里,關(guān)于python 模塊和包的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶(hù)投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Python標(biāo)準(zhǔn)庫(kù)(Python自帶的模塊和包)

    ????????“自帶電池”指python語(yǔ)言的標(biāo)準(zhǔn)庫(kù),因?yàn)樗素S富的功能和工具,幾乎可以滿(mǎn)足大部分的開(kāi)發(fā)需求,就像一個(gè)內(nèi)置電池一樣,所以python標(biāo)準(zhǔn)庫(kù)被稱(chēng)之為“自帶電池”。 python中的os模塊提供了豐富的與操作系統(tǒng)交互的函數(shù)。開(kāi)發(fā)人員可以通過(guò)os模塊提供的函數(shù)對(duì)

    2024年02月05日
    瀏覽(41)
  • Python的模塊(module)和包(package)

    Python的模塊(module)和包(package)

    Python 的模塊(module) 和包(package) 概述 在Python中,簡(jiǎn)單地說(shuō),模塊(Module)一般是單個(gè)python文件;包(package)由分層模塊(Module)構(gòu)成——相關(guān)目錄里的模塊構(gòu)成。Python中的庫(kù)(library)是參考其它編程語(yǔ)言的說(shuō)法,既可以是一個(gè)模塊也可以是一個(gè)包,換言之是對(duì)模塊或包的通

    2024年02月09日
    瀏覽(24)
  • Python模塊和包:sys模塊、os模塊和變量函數(shù)的使用

    模塊化指將一個(gè)完整的程序分解為一個(gè)一個(gè)小的模塊,通過(guò)將模塊組合,來(lái)搭建出一個(gè)完整的程序。模塊化具有方便開(kāi)發(fā)、維護(hù)和復(fù)用的優(yōu)點(diǎn)。在Python中,每個(gè)py文件就是一個(gè)模塊。 在一個(gè)模塊中引入外部模塊有兩種方式: import 模塊名 和 import 模塊名 as 模塊別名 。后者可以

    2024年02月08日
    瀏覽(28)
  • 【100天精通python】Day15:python 第三方模塊和包,模塊如何以主程序形式執(zhí)行

    目錄 1 常用的第三方模塊 2. 第三方模塊的安裝和使用 2.1 安裝第三方模塊:

    2024年02月15日
    瀏覽(90)
  • Python3.11教程3:模塊和包(pip/conda)、文件系統(tǒng)(os/ shutil/json/pickle/openpyxl/xlrd)

    本文相關(guān)鏈接: Python官網(wǎng)、Python 3.11.5 中文文檔、慕課:Python語(yǔ)言程序設(shè)計(jì)、Real Python :Write More Pythonic Code Miniconda、Anaconda、conda文檔 Python 標(biāo)準(zhǔn)庫(kù)官方文檔、 《os — 多種操作系統(tǒng)接口》、《os.path — 常用路徑操作》、《shutil — 高階文件操作》 Pandas文檔《Input/output》、 op

    2024年02月09日
    瀏覽(49)
  • Lua學(xué)習(xí)筆記之迭代器、table、模塊和包、元表和協(xié)程

    Lua學(xué)習(xí)筆記之迭代器、table、模塊和包、元表和協(xié)程

    迭代器是一種對(duì)象,它能夠來(lái)遍歷標(biāo)準(zhǔn)庫(kù)模板容器中的部分或全部元素,每個(gè)迭代器對(duì)象代表容器中確定的地址,在Lua中迭代器是一種支持指針類(lèi)型的結(jié)構(gòu),他可以遍歷集合的每一個(gè)元素。 泛型for自己內(nèi)部保存迭代函數(shù),實(shí)際上保存三個(gè)值:迭代函數(shù)、狀態(tài)常量、控制變量。

    2024年03月09日
    瀏覽(27)
  • msys2安裝與配置: 在windows上使用linux工具鏈g++和包管理工具pacman C++開(kāi)發(fā)

    msys2安裝與配置: 在windows上使用linux工具鏈g++和包管理工具pacman C++開(kāi)發(fā)

    方便windows上的C++開(kāi)發(fā)demo,不需要VS了 方便C++開(kāi)發(fā)安裝opencv等三方庫(kù) 有了這個(gè)就不需要另外安裝git, cmake, mingw64了,都可以通過(guò)pacman包管理工具一鍵安裝 官網(wǎng) https://www.msys2.org/ 官方文檔 https://www.msys2.org/docs/terminals/ github https://github.com/msys2/msys2-installer/releases/ 根據(jù)github readme中的

    2024年02月11日
    瀏覽(139)
  • 【Go 基礎(chǔ)篇】Go語(yǔ)言包詳解:模塊化開(kāi)發(fā)與代碼復(fù)用

    在Go語(yǔ)言中, 包(Package) 是一種用于組織代碼的機(jī)制,用于將相關(guān)的函數(shù)、類(lèi)型和變量等組織在一起,以便于模塊化開(kāi)發(fā)和代碼復(fù)用。包的使用能夠使程序結(jié)構(gòu)更加清晰、可維護(hù)性更高,同時(shí)也是Go語(yǔ)言強(qiáng)調(diào)的一項(xiàng)重要特性。本篇博客將深入探討Go語(yǔ)言中包的相關(guān)知識(shí),包括

    2024年02月11日
    瀏覽(88)
  • Python 開(kāi)發(fā)實(shí)現(xiàn)登陸和注冊(cè)模塊

    Python 開(kāi)發(fā)實(shí)現(xiàn)登陸和注冊(cè)模塊

    本例設(shè)計(jì)一個(gè)用戶(hù)登錄和注冊(cè)模塊,使用Tkinter框架構(gòu)建界面,主要用到畫(huà)布、文本框、按鈕等組件。涉及知識(shí)點(diǎn):Python Tkinter界面編程、pickle數(shù)據(jù)存儲(chǔ)。本例實(shí)現(xiàn)了基本的用戶(hù)登錄和注冊(cè)互動(dòng)界面,并提供用戶(hù)信息存儲(chǔ)和驗(yàn)證。 pickle是python語(yǔ)言的一個(gè)標(biāo)準(zhǔn)模塊,安裝python后已

    2024年04月22日
    瀏覽(28)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包