Python的包导入机制

本文探讨了Python大型项目中模块包的导入机制,重点讲解了绝对导入和相对导入的区别。绝对导入是Python3默认方式,避免了隐式相对导入可能导致的混淆。相对导入则基于模块的__name__属性确定相对位置,而在顶级脚本中需要特殊处理。详细内容包括Python脚本的运行方式、导入模式以及如何在不同场景下使用显式相对导入。
摘要由CSDN通过智能技术生成

Background

在Python的大型项目中,一般都会用到模块包来组织文件层次,其中当一个目录内含有__init__ . py文件时,就可以視该目录为一个模块包。
当在模块包中使用import语句的时候,不同的语法会导致不同的模块搜索导入方式,常见的导入方式如下:

  • 绝对导入(absolute import)
  • 显式相对导入(explicit relative import)
  • 隐式相对导入(implicit relative import)

需要注意的是,这些导入方式都是对于模块包而言,对于一般的模块还是从sys.path搜索入手。

Prerequisite

  • Python脚本运行的方式?

    • Python脚本运行分为两种方式:一种是作为top level script运行,另一种则是作为被导入的包模块运行。
    • 当使用python命令直接执行一个py文件的时候,该文件就是以top level script方式运行,此时文件的__name__属性则为__main__。

      
      # test.py
      
      print __name__
      
      # output
      
      __main__
      
    • 当文件使用包模块的方式运行的时候&#

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值