Python包和模組

2021-09-25 20:39:47 字數 3691 閱讀 7780

在介紹python包之前,先來了解下模組,乙個.py檔案就是乙個模組(與node.js模組概念類似,乙個.js檔案就是乙個模組),模組裡邊可定義變數、函式和類。

在python中模組分為自定義模組、內建模組、第三方模組,這篇文章我們著重聊下模組的引入。

在python中引入模組有兩種方式:

package 資料夾

| |

| |

| |

| | ——————>m2.py ----> variable_name = 'm2'

| | ——————>m3.py ----> variable_name = 'm3'||

m1.py

# 引入模組

improt package.m2,package.m3

print(package.m2.variable_name) # 'm2'

print(package.m3.variable_name) # 'm3'

上邊**,package資料夾與m1.py檔案同級,package資料夾下有m2.py和m3.py檔案,m2和m3檔案中分別有乙個變數,m1通過improt關鍵字引入m2和m3模組 。

有幾個注意的地方:

1、使用import匯入模組,如果不是同級模組,則需要寫上  資料夾名 . 模組名

2、使用模組中的變數時,寫法:資料夾名 . variable_name

3、如果模組巢狀很深,可以使用as作為路徑的別名, alias . variable_name

import package1.package2.package3.m4 as m

# 使用m4中的變數

m.variable_name

from package.m4 import variable_name

#使用模組變數時,直接列印即可,無需寫路徑

print(variable_name)

(1)可以使用星號匯入所有的變數

form module.m4 import *

#使用模組中的變數

print(variable_name1,variable_name2, ··· ···)

(2)也可以使用模組中的內建變數_ _all_ _來控制 * (也就是控制 * ,匯入指定的變數)

# m4 模組

__all__ = ['a','b']

a = 1

b = 2

c = 3

form module.m4 import *

#使用模組中的變數

print(a) # 1

print(b) # 2

print(c) # 報錯 c is not define

( 3 ) 多個變數的匯入,可以使用括號

form module import (a,b,c,d,e ··· ···)

#使用模組中的變數

print(a,b,c,d ··· ···)

(4)也可以直接引入包

form package_name import m1

#使用模組中的變數

print(m1.variable_name)

在python中,就是乙個資料夾包裡邊模組.py檔案),模組裡邊有類,裡邊含有函式與變數。。。當我們建立乙個python包的時候,包裡邊必須含有乙個_ _ init_ _.py檔案,否則建立的資料夾與普通資料夾沒區別;在每次執行引入的模組的時候,總會先執行_ _ init_ _.py檔案,所以在實際開發中通常會把__ init__.py檔案當做模組的初始化來用。。。在這說下,__init__.py這個模組的名字就是包的名字(下邊__init__.py模組的名字是package)

package 資料夾

| |

| |

| | ——————>__init__.py --> print('lxc')

| | ——————>m2.py --> variable_name = 'm2'

| | ——————>m3.py --> variable_name = 'm3'||

m1.py

# 引入模組

form package.m2 import variable_name

print(variable_name)

# 列印順序是:

# 'lxc'

# 'm2'

上邊**,我們在檔案m1中引入的package下的m2模組,結果列印順序:先列印 『 lxc 』 後列印 『m2』,證明在執行引入的模組的時候,總會先執行__ init __ .py檔案。

上邊截圖,我們在m.py檔案中引入py_package包下的所有模組,在__init__.py中我們用內建變數__all__來指定引入m1模組,結果列印m2沒被定義,因為m2沒有被引入!!!

當然如果不用 * 號 我們手動的引入模組,在__init__.py來控制模組的引入,是無效的。

假設有上百個檔案需要匯入相同的包,你當然不會去挨個檔案引入相同的模組,這時可以把引入模組的事讓__init__.py檔案去做:

在__init__.py檔案中,引入模組:

# 引入python內建模組

import os

import datatime

import sys

在需要執行模組的檔案中,只需要引入包名(包的名子就是__init__.py的名字)即可:

# 引用包

import py_package

# 使用包中的模組

print(py_package.os)

print(py_package.datetime)

print(py_package.sys) # 1

注意:包和模組不會重複被匯入,如果重複匯入只會執行一次以上就是模組和包的大致用法,有不足之處,希望指正!

python 模組和包 python模組和包

一.模組 python 模組 module 是乙個 python 檔案,以 py 結尾,包含了 python 物件定義和python語句。模組能定義函式,類和變數,模組裡也能包含可執行的 二.匯入模組 1.語法 import模組名from 模組名 import功能名from 模組名 import i...

Python 模組和包

包 模組的一種組織結構 乙個包由多個模組構成,即包含多個.py檔案 1匯入包的幾種形式 1 import module 將module模組中屬性列表的所有屬性匯入執行環境,使用時需要新增模組名稱,例如 module.func 2 from module import attrname,fucnnam...

python 模組和包

1.內建模組 本身就帶有的庫,就叫做python的內建的庫。模組 庫 一些常見的內建模組 os 和作業系統相關 os.path sys 和系統相關 sys.path re 正規表示式 2.第三方模組 非python本身自帶的庫,就是所謂的第三方的庫 3.模組的匯入 import as yy from...