当前位置: 首页 > news >正文

python 之import与from import 导入库的解析与差异

在这里插入图片描述

文章目录

  • 1. **使用`import`导入整个模块**:
  • 2. **使用`from import`导入特定内容**:
  • 注意事项
  • 别名的使用

在Python中,importfrom import是用于导入模块中内容的两种不同方式。下面详细介绍它们的用法和差异:

1. 使用import导入整个模块

  • 语法:import module_name
  • 示例:import math

这种方式会将整个模块导入当前命名空间,你需要使用模块名前缀来访问模块中的函数、变量和类。例如:

x = math.sqrt(25)

优点:

  • 明确表明了模块来源,避免了命名冲突。
  • 更容易理解代码的来源。

缺点:

  • 需要使用模块名前缀,可能会导致代码较长。

2. 使用from import导入特定内容

  • 语法:from module_name import name1, name2, ...
  • 示例:from math import sqrt, sin, cos

这种方式只导入指定的函数、变量或类,而不是整个模块,因此你可以直接使用它们,而无需使用模块名前缀。例如:

x = sqrt(25)

优点:

  • 可以减少代码中的冗余,使代码更简洁。
  • 可以避免使用模块名前缀,提高代码的可读性。

缺点:

  • 可能会导致命名冲突,特别是如果导入的内容与已有的名称冲突。
  • 不清楚导入的内容来自哪个模块,可能会降低代码的可维护性。

需要注意的是,尽管使用from import可以使代码更简洁,但过度使用它可能会导致命名冲突和可维护性问题。因此,通常建议选择合适的方式,根据具体情况决定是否导入整个模块或只导入需要的特定内容,以保持代码的清晰和可维护性。

注意事项

python 中import 只能导入模块,在使用时才用“模块名.对象名”来访问
在Python中,from module import *确实可以用来导入整个模块的内容,但通常不建议这样做,因为它可能导致命名冲突和可维护性问题,特别是在大型项目中。正确的用法是使用import module来导入整个模块,或使用from module import name1, name2, ...来导入特定的函数、变量或类。

别名的使用

当在Python中导入模块、函数、变量或类时,你可以使用别名(alias)来为它们起一个不同的名称,以便更方便地引用它们。这种做法可以简化代码、避免命名冲突,或提高代码的可读性。下面是导入加上别名的用法:

  1. 模块别名

    使用模块别名,你可以为导入的整个模块创建一个别名,使你在后续代码中使用该别名来引用模块的内容。这在模块名称很长或与其他模块有冲突时特别有用。

    import math as m  # 为math模块创建别名m
    x = m.sqrt(25)
    
  2. 函数、变量或类别名

    你也可以为导入的函数、变量或类创建别名,这对于函数名较长或与其他标识符冲突的情况很有用。

    from math import sqrt as square_root  # 为sqrt函数创建别名square_root
    x = square_root(25)
    

    这个例子中,我们使用了别名square_root来代替sqrt函数的名称。

  3. 混合使用模块别名和函数别名

    你还可以同时为导入的模块和其中的函数创建别名。

    import math as m
    from math import sqrt as square_root
    x = m.sqrt(25)
    y = square_root(36)
    

    这个例子中,我们为math模块创建了别名m,为sqrt函数创建了别名square_root,然后使用它们分别引用模块中的函数。

注意事项:

  • 别名的选择应该具有描述性,并且不会导致混淆。
  • 别名通常应该符合Python的命名规范。
  • 谨慎使用别名,以确保代码的可读性和维护性,不要过度使用别名。

通过使用别名,你可以根据具体需求更好地组织和管理你的代码,使其更具可读性和可维护性。

相关文章:

python 之import与from import 导入库的解析与差异

文章目录 1. **使用import导入整个模块**:2. **使用from import导入特定内容**:注意事项别名的使用 在Python中,import和from import是用于导入模块中内容的两种不同方式。下面详细介绍它们的用法和差异: 1. 使用import导入整个模…...

python实现MQTT协议(发布者,订阅者,topic)

python实现MQTT协议 一、简介 1.1 概述 本文章针对物联网MQTT协议完成python实现 1.2 环境 Apache-apollo创建brokerPython实现发布者和订阅者 1.3 内容 MQTT协议架构说明 : 利用仿真服务体会 MQTT协议 针对MQTT协议进行测试 任务1:MQTT协议应…...

2023年09月03日-----16:58

协同过滤推荐和矩阵分解本质上有什么不同?协同过滤推荐和矩阵分解是两种推荐系统方法,它们在某些方面有相似之处,但也有一些本质不同之处。 基本原理: 协同过滤推荐:协同过滤是一种基于用户行为数据的推荐方法,它依赖于用户-物品交互数据,如用户的评分或点击历史。协同过…...

HTTP状态码504(Gateway Timeout)报错原因分析和解决办法

文章目录 504报错原因分析一、用户角度1. 代理服务器问题2. 网络问题 二、网站管理员角度1. 服务器负载过重2. 网关配置问题3. 目标服务器响应慢4. IIS/nginx/apache服务关闭5. 维护或故障6. 数据库的慢处理也会导致504 用户角度可以采取哪些措施解决504错误1. 刷新页面2. 检查…...

《凤凰架构》第三章——事务处理

前言 由于一些地方原文感觉不太清楚,有些地方用小林coding的文章代替。 总结 事务处理主要的目的就是要让数据在各种条件下,最终的运行结果都能符合你的期望。要达成这个目标有三点需要满足:原子性(业务要么同时成功&#xff0…...

音视频添 加水印

一、文字水印 在视频中增加文字水印需要准备的条件比较多,需要有文字字库处理的相关文件,在编译FFmpeg时需要支持FreeType、FontConfig、iconv,系统中需要有相关的字库,在FFmpeg中增加纯字母水印可以使用drawtext滤镜进行支持&am…...

使用Python的requests库与chatGPT进行通信

前言 在人工智能领域,自然语言处理模型如OpenAI GPT-3.5 Turbo具有广泛的应用。虽然官方提供了Python库来与这些模型进行交互,但也有一些人更喜欢使用requests库来自定义请求和处理响应,比如现在很多第三方LLM都提供了与chatGPT类似的http请…...

SASS常用内置函数

1,math 引入:use "sass:math"; 常用函数: ceil($number) - 向上取整floor($number) - 向下取整round($number) - 四舍五入max($number...) - 比较若干数值并取最大值min($number...) - 比较若干数值并取最小值random() - 取0~1之…...

2023年05月 C/C++(四级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C++编程(1~8级)全部真题・点这里 第1题:怪盗基德的滑翔翼 怪盗基德是一个充满传奇色彩的怪盗,专门以珠宝为目标的超级盗窃犯。而他最为突出的地方,就是他每次都能逃脱中村警部的重重围堵,而这也很大程度上是多亏了他随身携带的便于操作的滑翔翼。 有一天,怪盗基德像往…...

Emmet 使用笔记小结

Emmet 使用笔记小结 最近在跟视频走 CSS 的教程,然后要写很多的 HTML 结构,就想着总结一下 Emmet 的语法。 Emmet 是一个工具可以用来加速 HTML 和 CSS 的开发过程,不过 emmet 只支持 HTML & XML 文件结构,所以我个人觉得对…...

如何使用Puppeteer进行新闻网站数据抓取和聚合

导语 Puppeteer是一个基于Node.js的库,它提供了一个高级的API来控制Chrome或Chromium浏览器。通过Puppeteer,我们可以实现各种自动化任务,如网页截图、PDF生成、表单填写、网络监控等。本文将介绍如何使用Puppeteer进行新闻网站数据抓取和聚…...

【LeetCode每日一题合集】2023.8.7-2023.8.13(动态规划分治)

文章目录 344. 反转字符串1749. 任意子数组和的绝对值的最大值(最大子数组和)1281. 整数的各位积和之差1289. 下降路径最小和 II解法1——动态规划 O ( n 3 ) O(n^3) O(n3)解法2——转移过程优化 O ( n 2 ) O(n^2) O(n2) ⭐ 1572. 矩阵对角线元素的和解法…...

微信小程序修改vant组件样式

1 背景 在使用vant组件开发微信小程序的时候,想更改vant组件内部样式,达到自己想要的目的(van-grid组件改成宫格背景色为透明,默认为白色),官网没有示例,通过以下几步修改成功。 2 步骤 2.1 …...

yum 、rpm、yumdownloader、repotrack 学习笔记

1 Linux 包管理器概述 rpm的使用: rpm -ivh filename.rpm#这列出该packageName(包名)安装的所有文件列表。 rpm -ql packageName #查询已安装的该packageName的详细信息,包括版本、发布日期等。 rpm -qi packageName #列出该pac…...

python检测CPU占用、内存和磁盘剩余空间 脚本

python检测CPU占用、内存和磁盘剩余空间 脚本。后续将其加入到计划列表中即可 # codingutf-8 import time import psutil import osimport smtplibfrom email.mime.multipart import MIMEMultipart from email.mime.text import MIMEText # email 用于构建邮件内容 from email…...

量化策略:CTA,市场中性,指数增强

CTA 策略 commodity Trading Advisor Strategy,即“商品交易顾问策略”,也被称作管理期货策略。 期货T0,股票T1双向交易:就单向交易而言的,不仅能先买入再卖出(做多),而且可以先卖…...

L1-051 打折(Python实现) 测试点全过

前言: {\color{Blue}前言:} 前言: 本系列题使用的是,“PTA中的团体程序设计天梯赛——练习集”的题库,难度有L1、L2、L3三个等级,分别对应团体程序设计天梯赛的三个难度。更新取决于题目的难度,…...

任意文件读取和漏洞复现

任意文件读取 1. 概述 一些网站的需求,可能会提供文件查看与下载的功能。如果对用户查看或下载的文件没有限制或者限制绕过,就可以查看或下载任意文件。这些文件可以是漂代码文件,配置文件,敏感文件等等。 任意文件读取会造成&…...

编译KArchive在windows10下

使用QT6和VS2019编译KArchive的简要步骤: 安装 Qt ,我是用源码自己编译的 "F:\qtbuild"安装CMakefile并配置环境变量安装Git下载ECM源码 https://github.com/KDE/extra-cmake-modules.git-------------------------------------------------…...

【Python】批量下载页面资源

【背景】 有一些非常不错的资源网站,比如一些MP3资源网站。资源很丰富,但是每一个资源都不大,一个一个下载费时费力,想用Python快速实现可复用的批量下载程序。 【思路】 获得包含资源链接的静态页面,用beautifulsoup分析页面,获得所有MP3资源的实际地址,然后下载。…...

Photoshop AI绘画革命:3分钟学会Auto-Photoshop-StableDiffusion-Plugin终极指南

Photoshop AI绘画革命:3分钟学会Auto-Photoshop-StableDiffusion-Plugin终极指南 【免费下载链接】Auto-Photoshop-StableDiffusion-Plugin A user-friendly plug-in that makes it easy to generate stable diffusion images inside Photoshop using either Automa…...

3分钟看穿B站评论区:高效识别用户背景的精准秘诀

3分钟看穿B站评论区:高效识别用户背景的精准秘诀 【免费下载链接】bilibili-comment-checker B站评论区自动标注成分,支持动态和关注识别以及手动输入 UID 识别 项目地址: https://gitcode.com/gh_mirrors/bil/bilibili-comment-checker 在B站评论…...

如何使用设计模式-误区

通过学习设计模式,可以使软件开发人员的面向对象分析和设计的能力得到很大的拓展和加强,即使编程人员还没有直接使用设计模式,只要真正用心理解了设计模式,那么软件开发人员的设计水平也将得到很大的提高。当然,学习设…...

突破式3步实现:用MOOTDX构建零成本金融数据获取引擎

突破式3步实现:用MOOTDX构建零成本金融数据获取引擎 【免费下载链接】mootdx 通达信数据读取的一个简便使用封装 项目地址: https://gitcode.com/GitHub_Trending/mo/mootdx 在金融数据分析领域,数据获取一直是从业者面临的核心挑战。无论是量化交…...

如何让AI成为你的第二大脑?AnythingLLM浏览器扩展使用指南

如何让AI成为你的第二大脑?AnythingLLM浏览器扩展使用指南 【免费下载链接】anything-llm 这是一个全栈应用程序,可以将任何文档、资源(如网址链接、音频、视频)或内容片段转换为上下文,以便任何大语言模型&#xff08…...

SQLiteGo:国产 ARM (aarch64) 银河麒麟 SQLite 数据库管理和数据分析工具分享

SourceURL:file:///home/Quincy/桌面/国产ARM环境 SQLite 管理实践:SQLiteGo 工具适配与数据分析优势分享.docx 在银河麒麟(aarch64架构)等国产ARM环境下,无论是开发者的日常数据库运维,还是数据分析师的高频数据处理…...

三步搞定!用bilidown轻松下载B站8K超清视频的完整指南

三步搞定!用bilidown轻松下载B站8K超清视频的完整指南 【免费下载链接】bilidown 哔哩哔哩视频解析下载工具,支持 8K 视频、Hi-Res 音频、杜比视界下载、批量解析,可扫码登录,常驻托盘。 项目地址: https://gitcode.com/gh_mirr…...

FPGA开发实战——常见错误排查与优化技巧(持续更新)

1. Vivado仿真与PR Flow冲突问题实战解析 第一次用Vivado做PR(Partial Reconfiguration)项目时,我兴冲冲地点开仿真按钮,结果弹出一个让人崩溃的报错:"ERROR [Common 17-69] Command failed. Simulation for PR F…...

智能管控硬件设备:FanControl散热管理工具全攻略

智能管控硬件设备:FanControl散热管理工具全攻略 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/FanC…...

hostapd wpa_supplicant madwifi深度解析(十)——WPS帧格式与交互流程详解

1. WPS协议基础与交互流程全景 第一次接触WPS(Wi-Fi Protected Setup)时,很多人会被它"一键连接"的便捷性吸引。但作为开发者,我们需要拨开这层简单的外衣,看看内部精妙的协议设计。WPS本质上是通过标准化的…...