python中import,from……import的使用详解

 更新时间:2024年02月09日 10:44:50   作者:甜筒酱  
这篇文章主要介绍了python中import,from……import的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

关于import,from……import的使用

在使用import和from……import之前需要先明确三个点

  • 1.模块(module):简单来说就是 .py 文件,里面定义了函数、变量、类等
  • 2.包(package):由多个模块聚合形成的文件夹,里面可以是多个 .py 文件,也可以是嵌套的文件夹
  • 3.库:指完成一定功能的代码集合,在python中的形式是模块和包

import

import用来导入模块,通过模块名去调用py文件中的类或函数。

1、当导入单个模块时,文件会从上至下的执行模块中的代码

举个例子:

#ww.py,模块名字为ww.py
a=1
def yy(q):
	print( q + 1 )

此时,可以使用 import ww 导入,里面的变量都要用 ww. 前缀,如果不想使用前缀,那么可以使用:from ww import a

2、当导入包中的模块时,首先会执行包下的 init.py,这个__init__.py是用来给包做一些初始化的工作的,里面可以是空的,但是必须要有。

3、导入多层包中的模块时,会执行各包下的__init__.py,和2的使用类似。

【注1】必须要有__init__.py这样可以把包的名字当作一个模块导入,否则程序会将这个文件夹当成普通文件夹来处理而不是一个包

【注2】使用__init__.py文件可以将常用的一些变量、函数、甚至模块和类导入以方便调用。

from……import

from……import用来从模块中导入方法,不仅可以导入模块,还可以导入模块中的类,变量或函数。

  • from 模块 import 方法
  • from 包中的模块 import 方法
  • from 包 import *,此时会受__init__.py中的__all__的影响,没有列出的模块无法导入引用。且此时不能导入以单下划线开头的保护属性和以双下划线开头的私有属性的

举例说明

我的文件夹的结构:

|configs
|--|swin
|----|mask_rcnn.py
|mmdet
|--|models
|----|backbones
|------|ptq
|------|__init__.py

我想要将ptq文件夹里面的一个函数(BIT_TYPE_DICT)导入到mask_rcnn.py模块里

那么我需要:

  • 在__init__.py里面导入此函数:from .ptq import BIT_TYPE_DICT
  • 在mask_rcnn.py里导入此函数:from mmdet.models.backbones import BIT_TYPE_DICT
  • 将BIT_TYPE_DICT函数添加到__init__.py的__all__ = []里面

总结

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

相关文章

  • Python爬虫爬取糗事百科段子实例分享

    Python爬虫爬取糗事百科段子实例分享

    在本篇文章里小编给大家整理了关于Python爬虫爬取糗事百科段子实例内容,需要的朋友们可以参考下。
    2020-07-07
  • python中(负数)整除和取模运算方式

    python中(负数)整除和取模运算方式

    Python中的取模运算符是%,它与其他语言中的取余符号相同,整除运算符是//,表示向下取整,在Python中,正数的取余和取模结果相同,但负数的取余和取模结果有所不同,取余运算在计算时向0方向舍弃小数位,而取模运算向负无穷方向舍弃小数位
    2024-10-10
  • pycharm中选中一个单词替换所有重复单词的实现方法

    pycharm中选中一个单词替换所有重复单词的实现方法

    这篇文章主要介绍了pycharm中选中一个单词替换所有重复单词的实现方法,类似于sublime 里的ctrl+D功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧
    2020-11-11
  • Python实现迷宫生成器的详细代码

    Python实现迷宫生成器的详细代码

    这篇文章主要介绍了Python实现迷宫生成器的详细代码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07
  • 详解python解压压缩包的五种方法

    详解python解压压缩包的五种方法

    这里讨论下使用Python解压五种压缩文件,.gz .tar .tgz .zip .rar的相关知识,文中给大家介绍了python实现rar文件解压的方法,感兴趣的朋友跟随小编一起看看吧
    2019-07-07
  • 浅析python中的set类型

    浅析python中的set类型

    这篇文章主要介绍了python中的set类型,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • Python与Rust混合编程实战:高性能数据处理和Web应用后端构建等案例

    Python与Rust混合编程实战:高性能数据处理和Web应用后端构建等案例

    本文介绍了将Rust与Python结合使用的方法,强调了Python在开发效率和生态系统方面的及Rust在性能和安全性方面的优势,文章探讨了多种混合编程的方式,如PyO3、ctypes和Rust-cpython,并通过高性能数据处理和Web应用后端构建等案例展示了如何实现
    2026-05-05
  • Python 列表去重去除空字符的例子

    Python 列表去重去除空字符的例子

    今天小编就为大家分享一篇Python 列表去重去除空字符的例子,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • python中Django文件上传方法详解

    python中Django文件上传方法详解

    在本篇文章里小编给大家整理了一篇关于python中Django文件上传方法,有兴趣的朋友们可以学习下。
    2020-08-08
  • 详解python调度框架APScheduler使用

    详解python调度框架APScheduler使用

    本篇文章主要介绍了详解python调度框架APScheduler使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03

最新评论