網站首頁 編程語言 正文
一、前言
在Python提供了強大的模塊支持,主要體現為不僅在Python標準庫中包含了大量的模塊(稱為標準模塊),而且還有很多第三方模塊,另外開發者自己也可以開發自定義模塊。通過這些強大的模塊支持,將極大地提高我們的開發效率。
二、模塊的概述
模塊的英文是Module,可以認為是一盒(箱)主題積木,通過它可以拼出某一主題的東西。這與函數不同,一個函數相當于一塊積木,而一個模塊包括很多函數,也就是很多積木,所以也可以說模塊相當于一盒積木。
在Python中,一個擴展名為“.py”的文件就稱之為一個模塊。通常情況下,我們把能夠實現某一特定功能的代碼放置在一個文件中作為一個模塊,從而方便其他程序和腳本導入并使用。另外,使用模塊也可以避免函數名和變量名沖突。
我們知道對于Python代碼可以寫在一個文件中,但是隨著程序不斷變大,為了維護,需要將其分為多個文件,這樣可以提高代碼的可維護性,使用模塊還可以提高代碼的可重用性。即編寫好一個模塊后,只要是實現該功能的程序,都可以導入這個模塊來實現。
三、自定義模塊
在Python中,自定義模塊有兩個作用,一個是規范代碼,讓代碼更容易閱讀,另外一個是方便其他程序使用已編好的代碼,提高開發效率。要實現自定義模塊主要分為兩部分,一部分是創建模塊,另一部分是導入模塊。
1.創建模塊
創建模塊可以將模塊中相關的代碼(變量定義和函數定義等)編寫在一個單獨的文件中,并且將該文件命名為“模塊名+.py”的形式,也就是說,創建模塊,實際就是創建一個.py文件。
注意:
- 創建模塊時,設置的模塊名盡量不要與Python自帶的標準模塊名稱相同
- 模塊文件的擴展名必須是“.py”
2.使用import語句導入模塊
創建模塊后,就可以在其他程序中使用該模塊了。要使用該模塊需要先以模塊的形式加載模塊中的代碼,這可以使用import語句實現。import語句的基本語法格式如下:
import modulename [as alias]
參數說明:
- modulename:要導入模塊的名稱
- [as alias]:為模塊起的別名
例如,導入一個名稱為test的模塊,并執行該模塊中的getInfo()函數,代碼如下:
import test # 導入test模塊
test.getInfo() # 執行模塊中的getInfo()函數
可以使用關鍵字 as 將導入模塊起個別名,代碼如下:
import test as m # 導入test模塊,并將test別名為m
m.getInfo() # 執行模塊中的getInfo()函數
使用import一次可以導入多個模塊,在導入多個模塊時,模塊與模塊之間用逗號“,”隔開。例如,同時導入test.py、data.py、tips.py 3個模塊文件,代碼如下:
import test,data,tips
雖然一次可以導入多個模塊,但不建議大家使用這種方法。
3.使用from…import語句導入模塊
在使用import語句導入模塊時,每一次執行import語句都會創建一個新的命名空間(namespace),并且在命名空間中執行與.py文件相關的所有語句。在執行時,需要在具體的變量、函數和類名前加上“模塊名.”前綴。如果不想在每次導入模塊時都創建一個新的命名空間,而是將具體的定義導入當前的命名空間中,這時可以使用from…import語句。使用from…import語句導入模塊后,不需要再添加前綴,直接通過具體的變量、函數和類名等訪問即可。
from…import語句的語法格式如下:
from modelname import member
參數說明:
- modelname:模塊名稱,區分字母大小寫,需要和定義模塊時設置的模塊名稱的大小寫保持一致。
- member:用于指定要導入的變量、函數或者類等。可以同時導入多個定義,各個定義之間用逗號“,”隔開。如果想導入全部定義,也可以使用通配符星號“*”代替。
例如,通過下面3條語句都可以從模塊導入指定的定義:
from test import getInfo # 導入test模塊的getInfo()函數
from test import getInfo,showInfo # 導入test模塊的getInfo()和showInfo()函數
from test import * # 導入test模塊的全部定義(包括變量和函數)
注意:
在使用from…import語句導入模塊中定義時,需要保證所有導入的內容在當前的命名空間中是唯一的,否則將出現沖突,后導入的同名變量、函數或者類會覆蓋先導入的。這時就需要使用import語句進行導入了。
附:python打包用戶自定義模塊
假設需要打包的模塊文件名為my.py,打包模塊需要新建的一個腳本setip.py,然后在腳本下輸入如下的內容:
from?disutils.core?import?setup
setup{name?=?'my',version?=?'1.0',py_modules?=?['my']}
以管理員身份運行cmd,進入my.py的目錄,執行下面的命令即可打包:
python?setup.py?sdist
運行后在該目錄下方出現一個文件夾dist,進入這個文件夾,會出現一個my-1.0.zip文件。
將該壓縮包放在sys.path的目錄下,解壓,以管理員身份運行cmd,進入解壓的目錄,執行下方的命令即可自動安裝my模塊。
python?setup.py?install
完成安裝后,即可加載my模塊:
import?my
總結
原文鏈接:https://blog.csdn.net/weixin_45191386/article/details/124576153
相關推薦
- 2022-09-19 Pytorch實現LSTM案例總結學習_python
- 2023-07-07 什么是 AOP?對于 Spring IoC 和 AOP 的理解?
- 2022-03-16 .Net?6簡介并和之前版本寫法做對比_基礎應用
- 2022-11-03 C語言編寫掃雷小程序_C 語言
- 2023-02-09 go?slice?數組和切片使用區別示例解析_Golang
- 2022-10-27 樹莓派-關閉可視化界面
- 2022-07-23 asp.net6?blazor?文件上傳功能_實用技巧
- 2022-07-12 手把手教你用Redis?實現點贊功能并且與數據庫同步_Redis
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支