Python中的import和from...import有什么區別?

文章目錄

  • 前言
  • 一、import導入模塊
    • 導入模塊并給它一個別名
    • 語法格式
  • 二、from...import導入特定項
    • 1.導入模塊中的特定項
    • 2.導入模塊中的所有項
      • 2.1 命名空間核污染
      • 2.2 性能影響
  • 總結


前言

在Python編程中,模塊和包的導入機制是編寫可維護、可擴展代碼的核心。深入理解Python的import機制有助于更好地組織代碼、提高代碼復用性。import和from…import是兩種常用的導入模塊或函數/變量的方法。它們看起來很簡單,但在實際使用中卻有很多細微的區別。本文將通過代碼示例,詳細解析import和from…import的區別,讓你在編寫Python代碼時更加得心應手。
import
模塊(Modules):所謂模塊就是一個.py文件,用來存放變量、方法的文件,便于在其他python文件中導入(通過import或from)。
模塊名:文件名去掉后綴.py

包(package): 包是更大的組織單位,包含多個模塊的文件夾,該文件夾有__init__.py文件
建立一個文件夾,創建__init__.py文件模塊,該文件夾就是一個包。一個包里面可以嵌套多個包,如下示意圖:創建一個包含module1和module2兩個模塊的包
package


一、import導入模塊

使用import語句可以導入一個完整的模塊,這樣我們就可以使用模塊中定義的函數、類等。比如我們

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

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

相關文章

vscode提示“無法使用 compilerPath 解析配置”解決辦法

0 問題描述 使用vscode的Remote-SSH插件連接安裝在虛擬機上的Windows10進行遠程開發時,出現如下提示:無法使用 compilerPath 解析配置:“D:\mingw64\bin\gcc.exe” 所有包含C庫頭文件的文件都被標紅提示錯誤:1 問題原因 vscode沒有設置正確的…

信噪比(Signal-to-Noise Ratio, SNR)詳細介紹

信噪比(Signal-to-Noise Ratio, SNR)信噪比(Signal-to-Noise Ratio,SNR)是衡量信號質量的重要參數,表示有用信號的功率與背景噪聲功率的比值。SNR在通信、音頻處理、視頻處理以及其他電子信號處理領域中具有…

Nginx 相關實驗(1)

nginx源碼編譯 本實驗采用nginx源碼編譯的安裝方式,需要準備一個tar包,可從nginx官網上下載。 下載地址:nginx: downloadhttps://nginx.org/en/download.html 將下載好的壓縮包傳到虛擬機中的自定義目錄下 [rootwebserver ~]# ls anacond…

【選型】HK32L088 與 STM32F0/L0 系列 MCU 參數對比與選型建議(ST 原廠 vs 國產芯片)(單片機選型主要考慮的參數與因素)

國產 vs ST 單片機在工業控制中的性能對比分析 HK32L088 與 STM32F0/L0 系列 MCU 參數對比與選型建議 工業控制領域 MCU 選型:國產航順 HK32 與 ST 原廠芯片深入比較 國產 MCU 是否可替代 ST?基于發電機控制應用的深入評估 從數據手冊看 MCU 制造工藝差異:HK32L088 vs S…

LLM Prompt與開源模型資源(1)提示詞工程介紹

學習材料:https://www.hiascend.com/developer/courses/detail/1935520434893606913學習時長: 預計 30 分鐘學習目的: 了解提示工程的定義與作用 熟悉提示工程的關鍵技術相關概念 掌握基于昇騰適配的大模型提示工程的入門及進階指南 提示…

kafka與其他消息隊列(如 RabbitMQ, ActiveMQ)相比,有什么優缺點?

Kafka、RabbitMQ 和 ActiveMQ 是三種最主流的消息中間件,它們的設計和適用場景有所不同。 我們可以通過一個簡單的表格來快速了解它們的核心區別: 核心對比一覽特性 / 維度KafkaRabbitMQActiveMQ核心模型分布式、持久化的日志系統 (Dumb Broker / Smart …

Kubernetes架構和部署

k8s組件 master節點:管理節點 管理平面組件 api server : api gateway controller manager scheduler etcd 數據庫 worker節點:被管理節點,運行容器 kubelet:k8s agent container runtime:docker,containerd,cri-o kube-proxy:service 網絡 ????????…

建造者模式及優化

建造者模式是一種創建型設計模式,它將復雜對象的構建過程與表示分離,使得同樣的構建過程可以創建不同的表示。核心思想是指揮者定流程,建造者填細節,通過多個步驟逐步構建對象,并允許靈活組合這些步驟以生成不同配置的…

【09】C++實戰篇——C++ 生成靜態庫.lib 及 C++調用lib,及實際項目中的使用技巧

文章目錄1 C 靜態庫.lib 生成1.1 靜態庫lib的生成方法和使用方法1.2 創建靜態庫項目1.3 編寫.h 和 .cpp文件1.4 設置 及 生成 DLL2 調用 C 靜態庫lib2.1 新建LIBtest及測試代碼2.2 靜態庫配置 及代碼調用測試3 實際項目中的使用技巧、及通用設置3.1 設置lib輸出路徑3.2 設置頭文…

飛算JavaAI:從寫不出代碼到絲滑開發,飛算JavaAI把小白從編程深淵撈進了正軌---它都讓我懷疑自己是不是多余的!

開篇介紹 對于很多初學者來說,編程是一項既有趣又充滿挑戰的任務。面對復雜的代碼和繁瑣的開發流程,常常會感到無從下手。不過,現在有了飛算JavaAI,這一切都將變得簡單起來。 它有啥實用功能呢? 比如: …

關于tresos Studio(EB)的MCAL配置之GtmCfg

Generic Time Module通用時鐘模塊GeneralGtmCfg_DevErrorDetect開發者錯誤檢測開關GtmCfg_DemErrorReporting診斷錯誤報告開關GtmCfg_VersionInfoApi獲取版本信息的接口開關GtmCfg_ConfigSetClockManagementUnitGlobal_Clock_Control_Numerator全局時鐘分頻器的分子Global_Cloc…

深入探索Weaviate:構建高效AI應用的數據庫解決方案

在當今數據驅動的世界中,高效地存儲、檢索和處理大規模數據成為了AI應用開發的關鍵挑戰。Weaviate作為一個開源的向量搜索引擎,憑借其強大的功能和靈活的架構,正逐漸成為開發者構建智能AI應用的首選工具。本文將深入探討Weaviate的核心概念、…

【開源】一款開源、跨平臺的.NET WPF 通用權限開發框架 (ABP) ,功能全面、界面美觀

文章目錄一、開源地址二、框架介紹三、技術路線四、適用場景五、功能模塊六、框架演示截圖一、開源地址 Gihub地址: https://github.com/HenJigg/wpf-abp B站學習視頻:https://www.bilibili.com/video/BV1nY411a7T8?spm_id_from333.788.player.switch&…

信創緩存中間件-TongRDS(Redis平替)安裝

TongRDS 是由東方通開發的國產 分布式內存數據緩存中間件,功能類似于 Redis,但它是完全自主研發的國產產品,是國內信創的一大重要組件。它兼容 Redis 的接口,能做到應用代碼無需改動即可替換使用。TongRDS是沒有直接的下載地址的。…

Git鏈接備用手冊

三板斧及其他:git init:初始化git倉庫git add . :將所在文件夾中的所有文件加入到暫存區git commit -m 自定義記錄信息 :將暫存區中的數據放到Git的倉庫(本地)中,并進行記錄(自定義&#xff0…

零信任網絡概念及在網絡安全中的應用

零信任網絡概念及在網絡安全中的應用 零信任網絡(Zero Trust Network)是一種顛覆傳統邊界安全的架構理念,其核心是**“永不信任,始終驗證”**(Never Trust, Always Verify)。它假設網絡內外均存在威脅&…

GaussDB case when的用法

1 case函數的類型case具有兩種格式&#xff0c;簡單case函數和case搜索函數。這兩種方式&#xff0c;大部分情況下可以實現相同的功能。1.1 簡單case函數語法case column when <condition> then value when <condition> then value ...... else value end;示例case…

Git用法記錄

代碼中沖突標記的含義&#xff1a;<<<<<<< HEAD 標記當前分支&#xff08;或本地&#xff09;的舊代碼作為分隔線 >>>>>>> [commit哈希] 標記從其他分支合并過來的新代碼&#xff08;這里的 c472b4b... 是提交哈希&#xff09; 暫存…

解決Android Studio中創建的模擬器第二次無法啟動的問題

Android Studio中創建的模擬器&#xff0c;首次啟動時一切正常。但是關閉模擬器&#xff0c;下一次啟動時一直顯示&#xff1a;Connecting to the Emulator&#xff0c;無法啟動。無法啟動的原因通常是默認開啟了模擬器的快速啟動功能&#xff0c;首次啟動時是“冷啟動”&#…

Linux設備驅動架構相關文章

學習一個領域&#xff0c;最好是從多個角度去學習&#xff0c;總有一個角度適合你。學習Linux驅動&#xff0c;從架構的角度把握&#xff0c;比直接看代碼更容易接受。以架構為主&#xff0c;結合細節學習&#xff0c;我稱之為自上而下的學習方法&#xff0c;就一個字&#xff…