python打卡day30

模塊和庫的導入

知識點回顧:

  1. 導入官方庫的三種手段
  2. 導入自定義庫/模塊的方式
  3. 導入庫/模塊的核心邏輯:找到根目錄(python解釋器的目錄和終端的目錄不一致)

作業:自己新建幾個不同路徑文件嘗試下如何導入

python的學習就像是學一點常見的基礎語法,再去針對性地學習處理任務需要用到的庫,庫的導入很簡單:

  • 標準導入整個庫,import xxx
  • 從庫中導入特定項,from xxx import yyy
  • 非標準導入整個庫,from xxx import *(和上面導入庫中特定項一樣,用的時候可以不用加庫的前綴)

------------------------------------------------- 相關概念辨析一下 ------------------------------------------------------

模塊(Module)

  • 本質:以 `.py` 結尾的單個文件,包含Python代碼(函數、類、變量等)
  • 作用:將代碼拆分到不同文件中,避免代碼冗余,方便復用和維護

包(Package)在python里,包就是庫

  • 本質:有層次的文件目錄結構(即文件夾),用于組織多個模塊和子包
  • 核心特征:包的根目錄下必須包含一個 `__init__.py` 文件(可以為空),用于標識該目錄是一個包
  1. ---------------------------------------------------------------------------------------------------------------------------------
  • IDE通常會將你打開的項目文件夾設為“根目錄”(或者說,運行時的工作目錄)。Python 在導入模塊時,會從這個根目錄(以及其他一些標準位置和腳本所在的目錄)開始查找,具體操作中,模塊導入可以按目錄層級分為以下三種類型:

1.同級目錄導入

  • 場景:當前腳本和要導入的模塊文件在同一個目錄下
  • 方法:直接使用上面提到的三種導入庫的方式

project/

├── main.py ? ? ? ?# 當前腳本

└── utils.py ? ? ? # 要導入的模塊

# main.py 中導入 utils.py
import utils
utils.some_function()# 或使用 from 語法
from utils import some_function
some_function()

2.子目錄導入

  • 場景:要導入的模塊位于當前腳本的子目錄中
  • 方法:需要將子目錄轉換為 Python 包,再通過包路徑導入

project/

├── main.py

└── subdir/

? ? ├── __init__.py ?# 空文件,標識這是一個包

? ? └── utils.py ?# 子目錄中的模塊

# main.py 中導入子目錄模塊
from subdir import utils
utils.some_function()# 或者只導入相關函數
from subdir.utils import some_function
some_function()

3.跨目錄導入

  • 場景:要導入的模塊位于完全不同的目錄層級(如父目錄、兄弟目錄等)
  • 方法:需動態修改?sys.path?或使用絕對導入(Python 3.3+ 支持命名空間包)
  • project/

    ├── parent_dir/

    │ ? └── utils.py

    └── child_dir/

    ? ? └── main.py ?# 需要導入?../parent_dir/utils.py

# main.py 中動態添加父目錄到 Python 路徑
import sys
import os# 獲取父目錄路徑并添加到 sys.path
parent_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.append(parent_dir)# 現在可以導入父目錄中的模塊
from parent_dir import utils
utils.some_function()

直接在終端運行python -m child_dir.main也可以將父目錄路徑添加到sys.path

@浙大疏錦行

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/83733.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/83733.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/83733.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++ —— Lambda 表達式

🎁個人主頁:工藤新一 🔍系列專欄:C面向對象(類和對象篇) 🌟心中的天空之城,終會照亮我前方的路 🎉歡迎大家點贊👍評論📝收藏?文章 文章目錄 L…

十三、面向對象底層邏輯-Dubbo序列化Serialization接口

一、引言:分布式通信的數據橋梁 在分布式服務調用中,參數的跨網絡傳輸需要將對象轉化為二進制流,這一過程直接影響系統的性能、兼容性與安全性。Dubbo通過Serialization接口構建了可擴展的序列化體系,支持多種序列化協議的無縫切…

批量剪輯 + 矩陣分發 + 數字人分身源碼搭建全技術解析,支持OEM

在互聯網內容生態蓬勃發展的當下,企業與創作者對內容生產與傳播效率的要求日益增長。批量剪輯、矩陣分發和數字人分身技術的融合,成為提升內容創作與運營效能的關鍵方案。從源碼層面實現三者的搭建與整合,需要深入理解各功能技術原理&#xf…

Java List 接口知識點詳解

一、List 接口概述 1. 基本定義 繼承關系:List 是 Java 集合框架(Collection Framework)中的一個有序隊列接口,直接繼承自 Collection 接口。核心特性: 有序性:元素按插入順序存儲,可通過索引…

OpenCV-去噪效果和評估指標方法

實驗前言 噪音類型 opencv常見噪音類型有 高斯噪音:高斯噪音是一種隨機噪音,其數值服從正態分布。圖像受到高斯噪音的影響時,像素值的變化類似于白噪音,但是噪音的強度會隨像素值的變化而變化。 椒鹽噪音:椒鹽噪音是…

永磁同步電機公式總結【一】——反電動勢、磁鏈、轉矩公式;三項、兩項電壓方程;坐標表換方程

一、PMSM 電機參數介紹 1.1 轉子極數 轉子極數 (Rotor Poles) :三相交流電機每組線圈都會產生 N、S 磁極,每個電機每相含有的永磁體磁極個數就是極數。由于磁極是成對出現的,所以電機有 2、4、6、8……極 (偶數)。 未知參數的電機&#xff…

eMMC深度解析:嵌入式多媒體卡的硬件電路設計要點

一、eMMC 技術深度解析 1.定義與背景 eMMC(Embedded Multi Media Card)是一種專為嵌入式系統設計的非易失性存儲解決方案,它將 NAND 閃存、主控芯片和接口協議封裝在一個 BGA(Ball Grid Array)封裝中。其核心目標是簡…

常見提示詞攻擊方法和防御手段——提示詞越獄

提示詞越獄(Prompt Jailbreaking)是一種針對大型語言模型(LLM)的攻擊手段,旨在通過精心設計的輸入提示繞過模型的安全審查和倫理限制,使其生成原本被禁止的內容(如暴力、非法操作、敏感信息等&a…

MySQL之基礎事務和隔離級別

目錄 引言: 什么是事務? 事務和鎖 mysql數據庫控制臺事務的幾個重要操作指令(transaction.sql) 1、事物操作示意圖: 2.事務的隔離級別 四種隔離級別: 總結一下隔離指令 1. 查看當前隔離級別?? …

學習記錄:DAY29

項目開發日志:技術實踐與成長之路 前言 回顧這幾天的狀態,熱情總是比我想象中更快被消耗完。比起茫然徘徊的小丑,我更希望自己是對著風車沖鋒的瘋子。 今天繼續深入項目的實際業務。 狀態好點的時候,再看自己EMO時寫的東西&…

kotlin Android AccessibilityService 無障礙入門

安卓的無障礙模式可以很好的進行自動化操作以幫助視障人士自動化完成一些任務。 無障礙可以做到,監聽屏幕變化,朗讀文本,定位以及操作控件等。 以下從配置到代碼依次進行無障礙設置與教程。 一、配置 AndroidManifest.xml 無障礙是個服務…

【Vue篇】數據秘語:從watch源碼看響應式宇宙的蝴蝶效應

目錄 引言 一、watch偵聽器(監視器) 1.作用: 2.語法: 3.偵聽器代碼準備 4. 配置項 5.總結 二、翻譯案例-代碼實現 1.需求 2.代碼實現 三、綜合案例——購物車案例 1. 需求 2. 代碼 引言 💬 歡迎討論&#…

WPS中代碼段的識別方法及JS宏實現

在WPS中,文檔的基本結構可以通過對象模型來理解: (1)Document對象:表示整個文檔 (2)Range對象:表示文檔中的一段連續區域,可以是一個字符、一個句子或整個文檔 &#…

el-tree結合el-tree-transfer實現穿梭框里展示樹形數據

參考文章&#xff1a;我把他的彈框單拉出來一個獨立文件作為組件方便使用&#xff0c;遇到一些問題記錄一下。 testComponet.vue <template><div class"per_container"><div class"per_con_left"><div class"per_con_title&q…

Go 后端中雙 token 的實現模板

下面是一個典型的 Go 后端雙 Token 認證機制 實現模板&#xff0c;使用 Gin 框架 JWT Redis&#xff0c;結構清晰、可拓展&#xff0c;適合實戰開發。 項目結構建議 /utils├── jwt.go // Access & Refresh token 的生成和解析├── claims.go // 從請求…

Typescript學習教程,從入門到精通,TypeScript 對象語法知識點及案例代碼(7)

TypeScript 對象語法知識點及案例代碼 TypeScript 是 JavaScript 的超集&#xff0c;提供了靜態類型檢查和其他增強功能。在 TypeScript 中&#xff0c;對象是面向對象編程&#xff08;OOP&#xff09;的基礎。 一、對象概述 在 TypeScript 中&#xff0c;對象是屬性的集合&a…

應用BERT-GCN跨模態情緒分析:貿易緩和與金價波動的AI歸因

本文運用AI量化分析框架&#xff0c;結合市場情緒因子、宏觀經濟指標及技術面信號&#xff0c;對黃金與美元指數的聯動關系進行解析&#xff0c;揭示本輪貴金屬回調的深層驅動因素。 周三&#xff0c;現貨黃金價格單日跌幅達2.1%&#xff0c;盤中觸及3167.94美元/盎司關鍵價位&…

命令行登錄 MySQL 報 Segmentation fault 故障解決

問題描述&#xff1a;對 mysql8.0.35 源碼進行 make&#xff0c;由于一開始因為yum源問題少安裝依賴庫 庫&#xff0c;在鏈接時遇到錯誤 undefined reference to&#xff0c;后來安裝了相關依賴庫&#xff0c;再次 make 成功。于是將 mysqld 啟動&#xff0c;再用 mysql -u roo…

Axure設計數字鄉村可視化大屏:構建鄉村數據全景圖

今天&#xff0c;讓我們一同深入了解由Axure設計的數字鄉村可視化大屏&#xff0c;看看它如何通過精心的布局和多樣化的圖表類型&#xff0c;將鄉村的各類數據以直觀、易懂的方式呈現出來&#xff0c;為鄉村管理者提供有力的數據支持。 原型效果預覽鏈接&#xff1a;Axure數字鄉…

3D個人簡歷網站 4.小島

1.模型素材 在Sketchfab上下載狐貍島模型&#xff0c;然后轉換為素材資源asset&#xff0c;嫌麻煩直接在網盤鏈接下載素材&#xff0c; Fox’s islandshttps://sketchfab.com/3d-models/foxs-islands-163b68e09fcc47618450150be7785907https://gltf.pmnd.rs/ 素材夸克網盤&a…