python中import,from……import使用方法

本文详细介绍了Python中import和from...import的使用,包括模块、包的概念和作用。强调了__init__.py在包结构中的重要性,以及如何通过它们导入特定函数或变量。同时,展示了从多层包结构中导入函数的实际操作步骤。
摘要由CSDN通过智能技术生成

在使用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用来从模块中导入方法,不仅可以导入模块,还可以导入模块中的类,变量或函数。
1、from 模块 import 方法
2、from 包中的模块 import 方法
3、from 包 import *,此时会受__init__.py中的__all__的影响,没有列出的模块无法导入引用。且此时不能导入以单下划线开头的保护属性和以双下划线开头的私有属性的
举例说明:

我的文件夹的结构:
|configs
|--|swin
|----|mask_rcnn.py
|mmdet
|--|models
|----|backbones
|------|ptq
|------|__init__.py
我想要将ptq文件夹里面的一个函数(BIT_TYPE_DICT)导入到mask_rcnn.py模块里,那么我需要:
1、在__init__.py里面导入此函数:from .ptq import BIT_TYPE_DICT
2、在mask_rcnn.py里导入此函数:from mmdet.models.backbones import BIT_TYPE_DICT
3、将BIT_TYPE_DICT函数添加到__init__.py的__all__ = []里面
  • 5
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值