python之绝对导入和相对导入

1、Python 相对导入与绝对导入

这两个概念是相对于包内导入而言的。包内导入即是包内的模块导入包内部的模块。

2、python中import的搜索路径

  1. 当前文件夹下
  2. 环境变量PYTHONPAHT中
  3. sys.path中

3、python中的import

  1. 导入当前模块同级别的模块
  2. 导入当前模块同级别包中的模块
  3. 不能导入具体的【变量、函数、类型】
|import导入
    |sub_package
        |__init__.py
        |tools.py
    |__init__.py
    |tools.py
    |main.py

可以在main.py模块中
import tools  #导入当前模块同级别的模块
import sub_package.tools  #导入当前模块同级别包中的模块

4、相对导入

from_import相对导入
    |__init__.py
    |tools.py
        |def sum()
        |msg = "变量"
    |main.py

'''
 相对路径引入【相对:相对的是当前文件路径;参照物:参照父级文件夹】
'''
#1、相对引入模块
from . import tools

print(tools.msg)

#直接运行会报错,
#因为此时main文件是入口文件(顶层文件)只有一个,所以找不到tools模块
'''
ImportError: cannot import name 'tools'
'''

#正确方式
#命令行使用python -m from_import相对导入.main,找到父级包做参照物,可以导入

#2、相对引入,直接引入具体函数、变量、类...
from .tools import sum

sum(1,2)

from .tools import msg
print(msg)

5、绝对导入

|from_import绝对导入
    |sub_package
        |__init__.py
        |tools.py
            |msg = "变量"
    |__init__.py
    |main.py

#通过绝对导入
from sub_package import tools
from sub_package.tools  import msg

print(tools.msg)
print(msg)
#通过 包.模块 直接引入【变量、函数、类】
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值