python中from import的使用解读

 更新时间:2025年03月04日 10:04:13   作者:_DCG_  
本文总结了Python中from和import的使用方法,包括导入模块和导入模块中的对象,强调了模块和对象的概念,并给出了具体的使用示例,最后,建议根据代码维护性和团队编码风格来选择合适的导入方式

python中from import的使用

无论是使用python还是c/c++开发代码时,不可避免的要使用到标准库或者第三方库,这个时候就需要在我们的py文件中调用库,而在python中一般是通过from和import的组合来实现加载第三方库包中的模块或者对象。

首先把自己对from和import的使用总结列出,后面再一一进行列举。

先强调两个概念

  • 模块,一般而言就是一个独立的py文件,一个模块就是一个py文件,该模块中可以定义类、方法、变量、常量、函数等。
  • 对象,在python一切皆对象,字符串,数字、元组、字典、函数、类、方法、模块等都可以称为对象,在本文中对象特指函数、变量、方法等(不指向模块)。

对上面的两个概念有了深入的认识,下面把原则列出。

  • import是导入的含义,在python中通过这个关键字可以导入模块,也可以导入模块中的对象(一般指函数、方法、类、变量等),但是需要注意的是import不能导入包。
  • from关键字可以修饰模块名称,也可以修改包的名称,修饰模块名称,则import导入的是对象名称;from关键字修饰包名称,后接的import修饰的是模块名称。

使用方法如下

import module_name
from package_name import module_name
from module_name import object_name1 object_name2 ...
from package_name.module_name import object_name1 object_name2 ...

导入模块的示例

import re
import sys

上面的语句就是导入re模块和sys模块。通过这种方式可以导入所有在搜索路径(sys.path)中的模块。

上面的用法很常用,也是我们经常使用的。

下面介绍第二种,即加载一个模块下的一个或者多个对象,示例如下:

from module_name import object_name1 ojbecct_name2

上面的介绍中module_name特指模块名称,而object_name1、object_name2一般指模块中的变量、函数、方法、类等。

即我们可以通过from+import的方式记载一个模块的中指定的函数、方法或者变量。

  • 这样做的好处是可以减少内存使用,只加载一个对象与加载模块中所有对象,对内存的消耗还是不一样的;
  • 劣势是如果调用模块仅使用被调用模块一个对象或者很少的几个对象,则此种方法可行,但是如果调用模块使用了很多的被调用模块的下对象,此种使用方法就不太友好,因为要针对每个对象添加一句上文中的语句。

具体如何使用请根据实际情况进行分析。

一个具体的例子

from re import search

search(xxxx,xxx)
#如果不使用此种方式,那么必须按照如下方式使用
import re

re.search(xxxx, xxx)

通过上面具体的例子,可以看出区别了吧。

如果通过import导入了对象,那么在代码中使用该对象时可以直接使用对象名称,而无需使用模块前缀,即search;如果仅导入了模块,那么在使用时一定要加入前缀,即re.search。

总结

无论是使用import还是from import,第一个要求是代码能够正常运行,其次,根据代码维护性,团队编码风格来确定选择哪一种方案。

如果我们只会使用到某个模块下面的一个函数(或者常量、类)并且名字不会产生混淆,可识别性高,那么from 模块名 import 函数名这没有什么问题。

如果我们会用到一个模块下面的多个函数,或者是我们将要使用的函数名、常量名、类名可能会让人产生混淆(例如 re.S、re.I),那么这种情况下,import 模块名然后再 模块名.xxx来调用会让代码更加清晰,更好维护。

但无论什么情况下,都禁止使用from xxx import *这种写法,它会给你带来无穷无尽的噩梦。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • python使用openCV遍历文件夹里所有视频文件并保存成图片

    python使用openCV遍历文件夹里所有视频文件并保存成图片

    这篇文章主要介绍了python使用openCV遍历文件夹里所有视频文件并保存成图片,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-01-01
  • Python无法用requests获取网页源码的解决方法

    Python无法用requests获取网页源码的解决方法

    爬虫获取信息,很多时候是需要从网页源码中获取链接信息的,下面这篇文章主要给大家介绍了关于Python无法用requests获取网页源码的解决方法,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-07-07
  • 使用Django启动命令行及执行脚本的方法

    使用Django启动命令行及执行脚本的方法

    今天小编就为大家分享一篇使用Django启动命令行及执行脚本的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • 基于Python3读写INI配置文件过程解析

    基于Python3读写INI配置文件过程解析

    这篇文章主要介绍了基于Python3读写INI配置文件过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • python的print输出在控制台并且将输出内容保存为文件(最新推荐)

    python的print输出在控制台并且将输出内容保存为文件(最新推荐)

    这篇文章主要介绍了python的print输出在控制台并且将输出内容保存为文件,我感觉就是类似于重写一下调用print的时候执行的方法,让他既能够在控制台输出,也能保存到文件里去,需要的朋友可以参考下
    2023-01-01
  • Python实现在Word中创建,读取和删除列表详解

    Python实现在Word中创建,读取和删除列表详解

    在Word中,列表是一种用于组织和呈现信息的有效工具,这篇文章将探讨一下如何使用Python在Word文档中创建,读取和删除列表,需要的可以了解下
    2025-03-03
  • Python数据处理利器Pandas DataFrame常用操作

    Python数据处理利器Pandas DataFrame常用操作

    这篇文章主要为大家介绍了Python数据处理利器Pandas DataFrame,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-06-06
  • pytorch中的nn.Unfold()函数和fold()函数解读

    pytorch中的nn.Unfold()函数和fold()函数解读

    这篇文章主要介绍了pytorch中的nn.Unfold()函数和fold()函数用法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • python字符串格式化(%格式符和format方式)

    python字符串格式化(%格式符和format方式)

    在编写程序的过程中,经常需要进行格式化输出,每次用每次查,干脆就在这里整理一下,下面这篇文章主要给大家介绍了关于python字符串格式化的相关资料,分别是%格式符和format方式,需要的朋友可以参考下
    2022-02-02
  • 使用python制作九九乘法表的四种方法小结

    使用python制作九九乘法表的四种方法小结

    九九乘法表是初学者学习编程的必要练手题目之一,因此各种语言都有对应的实现方式,而 Python 也不例外,在 Python 中,我们可以使用多种方式来生成一个简单的九九乘法表,本文给大家总结了使用python制作九九乘法表的四种方法,需要的朋友可以参考下
    2024-03-03

最新评论