4.1 模塊概述

1.Python結構

? ? ? ? 工程 > 包 > 模塊

? ? ? ? Python工程: “Python項目中最大的文件夾(本質就是一個文件夾)” --- 左側的 CODE文件夾 為Python工程

? ? ? ? Python包: 本質就是一個文件夾,但是python包中具備具體的標識,如果沒有標識則不能導入 --- 左側的 01.Python基礎 文件夾為python包

? ? ? ? Python模塊: 每一個 .py 文件 --- 左側的 1.1 變量.py 為Python模塊

? ? ? ? 2.Pytho包:

? ? ? ? ? ? 特征:內部包含一個初始文件,文件名為: __init__.py ? ? (雙下劃線)

? ? ? ?

? ? ? ? 3.Pytho模塊的分類:

? ? ? ? ? ? >.內置模塊 ?Python解釋器自帶的 ?(random/math/date/funtools)

? ? ? ? ? ? >.自定義模塊 ? ?自己寫的所有.py文件

? ? ? ? ? ? >.第三方模塊 ? ?必須通過外網下載才能導入

? ? ? ? ? ? ? ? PythonWeb開發: django/flask

? ? ? ? ? ? ? ? 數據分析: pandas/numpy

? ? ? ? ? ? ? ? 人工智能: sekitlearn

? ? ? ? 4.導入模塊

? ? ? ? ? ? -導入包

? ? ? ? ? ? ? ? import 包名

#導入包

import test_package ? ? #導入Python包-導入模塊方法一:import 包名.模塊名 as 別名 ? ? ? ? ? ? ?該語句會將指定包下的模塊導入到當前命名空間# ? 包名.模塊名 ? ? 使用時同樣需要 包名.模塊名 的形式來調用print("------------------------------導入模塊1")import test_package.Hello1test_package.Hello1.show() ? ? ? ? ? #wzw:12345#起別名 as ---print("------------------------------as")import test_package.Hello1 as hellohello.show()方法二: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?前提:導入的模塊要和當前空間同級import 模塊名 as 別名 ? ? ? ? ? ? ? ? ? ? ? ? ? 此語句可以將整個模塊導入到當前命名空間中

直接導入模塊名 ? ? ?導入的模塊必須和當前命名空間同級

import Hello2

Hello2.show()

方法三: ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

? ? ? ? ? ? ? ? ? ? from 包名1.子包名2.... import 模塊名 as 別名 ? ? ? ? ? ?允許你從模塊中導入特定的函數、類或變量到當前命名空間。導入后,使用時無需加模塊名前綴。'''# ? form 包名.子包名 import 模塊名 ? ? ?從包中去導入一個模塊, 運用最廣from test_package import Hello1Hello1.show() ? ? ? ? ? ? ? ? ? ? ? ? ? #此方式是將 Hello1 模塊整個導入到當前命名空間from test_package.Hello1 import showshow() ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? #此方式是從 Hello1 模塊中僅導入 show 函數到當前命名空間from Hello2 import showshow() ? ? ? ? ? ?#yst:6789 ? ?在 Hello2 中調用




5. __init__.py 文件的用法

? ? ? ? 當包被導入時,__init__.py 中的代碼會自動執行,常用于:

? ? ? ? ? ? >.定義包的公共接口

? ? ? ? ? ? >.初始化全局變量或配置

? ? ? ? ? ? >.執行包級別配置(如日志初始化)

'''

print(test_package.USERNAME) ? ? ? ?#WangZhaoWei


?

test_package.test_connect_mysql() ? ? ? ? ? ? ? # mysql數據庫已連接.... ? ? ? 連接數據庫的函數


?

? ? 6.動態導入包

? ? ? ? - import 導入模塊原理:使用了內置函數 __import__()

#第一種方式 -- 不建議module_name = "random" ? ? ? ? ?#將 random隨機數庫值傳遞給module_nameres = __import__(module_name)print(res.randint(1,50)) ? ? ? ? ? ?#在1-50中隨機打印一個數字#第二種方式:導入動態導入的庫import importlibmodule_name = "math" ? ? ? ? ? ?#值傳遞 將math內置數模塊傳遞給module_nameres = importlib.import_module(module_name)print(res.pi) ? ? ? ? ? ? ? #3.141592653589793 打印出圓周率近似值


?

? ? 7.導入模塊占用內存問題

? ? ? ? 無論導入多少次同一模塊,都只占用同一內存地址

#測試導入模塊內存問題import math as m1import math as m2import math as m3 ? ? ? ? ? #導入三次math比較其地址print(m1 is m2) ? ? #Trueprint(m1 is m3) ? ? #True ? ? ? 證明同一模塊只會占用同一塊地址

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

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

相關文章

AJAX 實例

AJAX 實例 引言 Ajax(Asynchronous JavaScript and XML)是一種在無需重新加載整個頁面的情況下,與服務器交換數據并更新部分網頁的技術。Ajax通過在后臺與服務器交換數據,實現了頁面的動態更新,從而提高了用戶體驗和…

相機的基礎架構

📷 相機相關基礎架構學習路徑 一、了解手機相機系統架構 Android Camera HAL(如果你是做 Android 平臺) 學習 Camera HAL3 架構(基于 camera_device_t, camera3_device_ops 接口) 熟悉 CameraService → CameraProvid…

MLX Chat - 基于 Streamlit 的 MLX 前端界面

本文翻譯整理自:https://github.com/da-z/mlx-ui 一、關于 MLX Chat 一個基于 Streamlit 的簡單 UI/網頁前端,用于 MLX mlx-lm 項目。 相關鏈接資源 github : https://github.com/da-z/mlx-uiMLX 社區模型庫:https://huggingface.co/mlx-co…

el-table 自定義列、自定義數據

一、對象數組格式自定義拆分為N列 1-1、數據格式: const arrayList ref([{"RACK_NO": "A-1-001"},{"RACK_NO": "A-1-002"},{ "RACK_NO": "A-1-003"},//省略多個{"RACK_NO": "A-1-100…

JVM 如何使用性能分析工具定位代碼中的性能問題?

核心思想: 通過工具觀察程序在特定負載下的運行狀態,識別消耗資源最多的代碼段(熱點代碼)、異常的內存分配模式或線程阻塞情況,然后針對性的優化代碼。 通用步驟: 確定問題: 首先明確遇到了什…

Python虛假新聞檢測識別

程序示例精選 Python虛假新聞檢測識別 如需安裝運行環境或遠程調試,見文章底部個人QQ名片,由專業技術人員遠程協助! 前言 這篇博客針對《Python虛假新聞檢測識別》編寫代碼,代碼整潔,規則,易讀。 學習與應…

網絡原理 - 12(HTTP/HTTPS - 3 - 響應)

目錄 認識“狀態碼”(status code) 200 OK 404 Not Found 403 Forbidden 405 Method Not Allowed 500 Internal Server Error 504 Gateway Timeout 302 Move temporarily 301 Moved Permanently 418 I am a teaport 狀態碼小結: …

Spring Boot中集成Guava Cache或者Caffeine

一、在Spring Boot(1.x版本)中集成Guava Cache 注意&#xff1a; Spring Boot 2.x用戶&#xff1a;優先使用Caffeine&#xff0c;性能更優且維護活躍。 1. 添加依賴 在pom.xml中添加Guava依賴&#xff1a; <dependency><groupId>com.google.guava</groupId&…

Linux工作臺文件操作命令全流程解析

全文目錄 1 確認當前工作路徑2 導航與目錄管理2.1 關鍵命令2.2 邏輯銜接 3 文件基礎操作3.1 創建 → 備份 → 重命名 → 清理3.2 文件查看和編輯3.3 文件鏈接3.4 文件diff 4 文件權限與所有權管理5 文件打包與歸檔6 參考文獻 寫在前面 shell是一種命令解釋器&#xff0c;它提供…

LeetCode第183題_從不訂購的客戶

LeetCode 第183題&#xff1a;從不訂購的客戶 題目描述 表: Customers ---------------------- | Column Name | Type | ---------------------- | id | int | | name | varchar | ---------------------- id 是該表的主鍵。 該表包含消費者的 id 和…

c語言的常用關鍵字

c語言的常用關鍵字 c語言的關鍵字表示數據類型的關鍵字autocharfloatdoubleintlongshortvoidsignedstruct、enum、unionunsigned 表示分支語句的關鍵字ifelseswitchbreakcasecontinuedefault 表示循環語句的關鍵字whiledoforgoto 用于修飾變量或函數的關鍵字constconst修飾變量…

MCU通用輸入輸出端口(GPIO)設計指南

在嵌入式系統開發中&#xff0c;MCU的GPIO接口是一個基礎但非常實用的功能模塊。GPIO全稱是通用輸入輸出端口&#xff0c;它讓MCU可以靈活地與外部設備進行交互。 GPIO的主要特點包括&#xff1a; 多功能性&#xff1a;每個引腳都可以單獨配置為輸入或輸出 可編程性&#xff…

STM32完整內存地址空間分配詳解

在STM32這類基于ARM Cortex-M的32位微控制器中&#xff0c;整個4GB的地址空間(從0x00000000到0xFFFFFFFF)有著非常系統化的分配方案&#xff0c;每個區域都有其特定的用途。下面我將詳細介紹這些地址區域的分配及其功能&#xff1a; STM32完整內存地址空間分配詳解(0x00000000…

實現水平垂直居中的多種方法

在前端開發中&#xff0c;元素的居中是一個常見但又經常讓人頭疼的問題。本文將全面總結各種CSS居中方法&#xff0c;特別是如何實現一個div的水平垂直居中。 為什么居中這么重要&#xff1f; 居中布局是現代網頁設計中最基礎也最重要的布局方式之一。無論是導航菜單、登錄框…

如何實現服務的自動擴縮容(Auto Scaling)

在云計算和分布式系統的時代,系統的彈性和適應性已成為企業構建高效IT基礎設施的核心需求。自動擴縮容(Auto Scaling)作為一種關鍵技術,旨在根據實時負載變化動態調整計算資源,以確保系統性能穩定,同時優化資源利用效率。簡單來說,自動擴縮容是指系統能夠根據預設規則或…

uniapp+vue3+ts 使用canvas實現安卓端、ios端及微信小程序端二維碼生成及下載

加粗樣式uniapp多端生成帶二維碼海報并保存至相冊的實現 在微信小程序開發中&#xff0c;我們常常會遇到生成帶有二維碼的海報并保存到手機相冊的需求&#xff0c;比如分享活動海報、產品宣傳海報等。今天就來和大家分享一下如何通過代碼實現這一功能。 準備工作 在開始之前&am…

架構師面試(三十八):注冊中心架構模式

題目 在微服務系統中&#xff0c;當服務達到一定數量時&#xff0c;通常需要引入【注冊中心】組件&#xff0c;以方便服務發現。 大家有沒有思考過&#xff0c;注冊中心存在的最根本的原因是什么呢&#xff1f;注冊中心在企業中的最佳實踐是怎樣的&#xff1f;注冊中心的服務…

Day.js和Moment.js對比,日期時間庫怎么選?

在JavaScript的日期處理庫中&#xff0c;Moment.js 和 Day.js 是兩個非常流行的選擇。本文將基于從npmtrends的數據&#xff0c;對這兩個庫進行詳細的對比分析。 Moment.js的重度使用者。凡是遇到時間和日期的操作&#xff0c;就把Moment.js引用上。 直到有天我發現加載的mome…

羅默如何用木星衛星“宇宙鐘表”測量光速?

一、17世紀的“宇宙級實驗” 1676年&#xff0c;丹麥天文學家奧勒羅默&#xff08;Ole Rmer&#xff09;在巴黎天文臺做出驚人發現&#xff1a; 木星衛星的“遲到早退”現象&#xff0c;竟能揭示光速的秘密&#xff01; 通過觀察木衛一&#xff08;Io&#xff09;的軌道周期變…

deepseek 技巧整理

1、導出word 和excel 功能&#xff0c;在使用以下提示詞。 請幫我列出減肥期間可以吃的水果&#xff0c;并分析該水果含有的營養元素&#xff0c;以表格的形式星現。1.要以html的方式輸出 2.要可以直接運行 3.頁面要提供可以直接下載word和excel功能