溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Python模塊中怎么引用包

發(fā)布時(shí)間:2021-11-25 11:47:51 來源:億速云 閱讀:122 作者:iii 欄目:互聯(lián)網(wǎng)科技

這篇文章主要講解了“Python模塊中怎么引用包”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“Python模塊中怎么引用包”吧!

包的定義

python包是一種特殊的文件夾,用來存放多個(gè)相互關(guān)聯(lián)的模塊文件和資源文件,該文件夾下必須有__init__.py文件。Python首次導(dǎo)入包時(shí)會(huì)自動(dòng)運(yùn)行__init__.py文件。若沒有這個(gè)文件會(huì)被視為文件夾,有這個(gè)文件才會(huì)被視為包。

包的示例

文件夾jihe下有3個(gè)文件,內(nèi)容如下:

__init__.py文件:

from jihe import mianji  # 導(dǎo)入mianji.py模塊
from jihe import tiji  # 導(dǎo)入tiji.py模塊

__all__ = ['mianji', 'tiji']  # 定義from jihe import *可使用的模塊名

mianji.py文件:

'''
計(jì)算面積
'''


def changfx(a, b):
    return a*b


def yuanx(r):
    return 3.14159*r*r


def sanjx(a, b):
    return a*b/2

tiji.py

'''
計(jì)算體積
'''


def changft(a, b, c):
    return a*b*c


def zhengft(a):
    return a**3

引用包的不同方式

test1.py文件(使用from jihe import *方式,可使用的函數(shù)會(huì)受__all__限制):

from jihe import *

print(mianji.changfx(3,5))
print(mianji.sanjx(2,4))
print(mianji.yuanx(5))
print(tiji.changft(2,3,4))
print(tiji.zhengft(3))

out:
15
4.0
78.53975
24
27

test2.py文件(使用import jihe方式,可使用的函數(shù)不受__all__限制):

import jihe

print(jihe.mianji.changfx(3,5))
print(jihe.mianji.sanjx(2,4))
print(jihe.mianji.yuanx(5))
print(jihe.tiji.changft(2,3,4))
print(jihe.tiji.zhengft(3))

out:
15
4.0
78.53975
24
27

from XX import *的方式使用包內(nèi)資源時(shí)省略包名寫“模塊名.成員名”即可,但有命名沖突的風(fēng)險(xiǎn)。

import XX的方式使用包內(nèi)資源時(shí)要寫“包名.模塊名.成員名”才行,但不會(huì)有命名沖突的風(fēng)險(xiǎn)。

定義包的另類方法

以下寫一個(gè)定義包的另類方法,拓展思路,給大家參考。

還是沿用前面的案例,但__init__.py文件重新定義如下:

from .mianji import *
from .tiji import *
__all__ = ['changfx', 'yuanx','sanjx','changft','zhengft']

test3.py文件(使用from jihe import *方式,可使用的函數(shù)會(huì)受__all__限制):

from jihe import *

print(changfx(3,5))
print(sanjx(2,4))
print(yuanx(5))
print(changft(2,3,4))
print(zhengft(3))

out:
15
4.0
78.53975
24
27

__init__.py文件使用from XX import *方式,test3也使用from XX import *,可以將jihe包內(nèi)所有成員當(dāng)成本地成員使用。優(yōu)點(diǎn)是使用包內(nèi)資源時(shí)只需要寫成員名即可,缺點(diǎn)是命名沖突的概率大增。

感謝各位的閱讀,以上就是“Python模塊中怎么引用包”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對(duì)Python模塊中怎么引用包這一問題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI