網站首頁 Python教程 正文
文章目錄
- 一、模塊介紹
- 二、導入模塊的基本格式
- 三、兩種格式的優缺點
- 四、補充知識
- 五、循環導入問題
- 六、判斷文件類型
- 七、模塊的查找順序
一、模塊介紹
1.如何理解模塊
模塊可以看成一個完整的功能非常強的大代碼體 使用了模塊就相當于你也有這個功能了
使用模塊編程就相當于站在巨人的肩膀上(智能語音 人工智能機器學習......)
2.模塊分類
1>.內置模塊
內置模塊就是python自帶的可以直接調用的模塊
eg:import time
time.sleep(3) 讓計算機等待三秒再運行
2>.自定義模塊
自定義模塊肯定就是自己寫出來的模塊了
eg: 注冊功能 登錄功能......
3>.第三方模塊
第三方就是大佬們將已經寫好了的發布在網上我們之間直接CV戰士即可
eg: 圖像識別 圖形可視化 語音識別
3.模塊的表現形式
1>.py文件(py文件也可以稱之為是模塊文件)
2>.含有多個py文件的文件夾(按照模塊功能的不同劃分不同的文件夾存儲)
3>.已被編譯為共享庫或DLL的c或C++擴展(了解)
4>.使用C編寫并鏈接到python解釋器的內置模塊(了解)
二、導入模塊的基本格式
基本格式1 import句式
import LebronJames 導入LBpy文件
print(LebronJames.point) 通過句點拿到LB里面的變量名
print(LebronJames.read1) 通過句點拿到LB里面的變量名
LebronJames.read1() 通過句點拿到LB里面的函數調用
基本格式2 from...import...句式
from LebronJames import point 指名道姓的導入point變量名
print(point) 不用通過句點即可直接使用
point = 62323 新建一個變量名point
print(point) 這時候就是62323了把之前的關系斷了
三、兩種格式的優缺點
import
優點:可以通過md句點方式使用到模塊里面所有的名字 并切不會沖突
缺點:md什么都可以點 有時候并不想讓所有的名字都能被使用
from....import
優點:可以指定出自己想要的那單獨一個名字 不用添加md前綴
缺點:名字及其容易產生沖突(綁定關系被修改)
四、補充知識
1.重命名
1>.當導入多個模塊名字沖突的時候
import LebronJames as LB
通過 后面加上as和新的名稱即可直接句點調用
from LebronJames import point as LB
也是通過后面加上as新的名稱就可以直接調用
2>.原有的模塊文件名太長復雜可讀性不強
import LBLBLBLBLBLB as LB
通過 后面加上as和新的名稱即可直接句點調用
2.導入多個名字
1>.import LB,point,read1,read2
方式1建議多個模塊功能相同功能才能適應 不相似盡量分開導入
import either 其他功能模塊
2>.from LB import point,read1,read2
方式二導入方式是推薦使用的 因為多個名字出自于一個模塊文件
3.全導入
需要使用模塊名稱空間中很多名字 并且只能使用from...import句式
from LebronJames import * *表示所以名字
ps:針對*號的導入還可以控制名字的數量
在模塊文件中可以使用__all__ = [字符串的名字]控制*能夠獲取的名字
控制名稱僅限制*號全部的模式下使用
五、循環導入問題
1.如何理解循環導入
循環導入就是兩個文件彼此導入對方的名字
2.循環導入容易出現報錯現象
使用彼此的名字可能是在沒有準備好的情況下就使用了
3.如何解決循環導入保存現象
在調用彼此的名字之前就定義好名字 相當于函數 先定義后調用的原理
六、判斷文件類型
所有的py文件中都自帶一個__name__內置名
當py文件是執行文件的時候 __name__的結果是__main__
當py文件是被導入文件的時候 __name__的結果是模塊名(文件名)
七、模塊的查找順序
1.導入一個文件 然后在導入過程中刪除該文件 發現還可以使用
import LebronJames 導入文件
import time 導入時間模塊
time.sleep(15) 等待15秒在運行
print(LebronJames.point) 打印LB里面的point
'''該過程中刪除了文件 但是結果還是不報錯 如果再來一次 就會報錯了 '''
2.創建一個跟內置模塊名相同的文件名
import time 導入時間模塊
print(time.time()) 獲取當前時間戳
from time import name 導入相同的名字
print(name)
'''如果命名跟原本內置的模塊一樣則最終結果報錯 所以禁忌取相同的名稱'''
3.導入模塊的時候一定要知道誰是執行文件 所有的路徑都是參照執行文件來的
當我們模塊內容不在一個層級里面 我們可以使用添加路徑來尋找即可
import sys
sys.path.append(r'/Users/macbookpro/PycharmProjects/import/LebronJames.py')
import LebronJames
print(LebronJames.point)
4.主要查找順序
先從內存空間中查找>>>再從內置模塊中查找>>>最后取sys.path查找相當于我們之前學習
的環境變量 如果上述三個地方都找不到 那么就會之直接報錯
原文鏈接:https://blog.csdn.net/MeiJin_/article/details/125764053
相關推薦
- 2022-09-28 k8s證書有效期時間修改的方法詳解_云其它
- 2022-10-09 C#實現折半查找算法_C#教程
- 2022-08-12 Docker與K8s關系介紹不會Docker也可以使用K8s_云和虛擬化
- 2022-08-02 Python分支語句常見的使用方法_python
- 2023-12-19 Mybatis-plus的快速使用
- 2022-04-02 C語言實現二叉樹層次遍歷介紹_C 語言
- 2023-12-12 線程同步的使用--this作為線程對象鎖synchronized關鍵字
- 2022-01-11 slice、substring、substr比較
- 最近更新
-
- 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同步修改后的遠程分支