详解Python 3.x 导入(import)

本文深入探讨了Python中的模块和包的概念,包括模块作为代码组织单位的作用,以及包如何解决命名冲突问题。包通过包含__init__.py文件来定义,用于管理和组织模块,__all__变量则在模糊导入时起到指定可导入模块的作用。同时,介绍了如何通过修改sys.path来调整包的搜索路径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、基本概念

1、模块、包

        模块 module:一般情况下,是一个以.py为后缀的文件。其他可作为module的文件类型还有".pyo"、".pyc"、".pyd"、".so"、".dll"。module 可看作一个工具类,可共用或者隐藏代码细节,将相关代码放置在一个module以便让代码更好用、易懂,让coder重点放在高层逻辑上。module能定义函数、类、变量,也能包含可执行的代码。module来源有3种:①Python内置的模块(标准库);②第三方模块;③自定义模块。
        包 package: 为避免模块名冲突,Python引入了按目录组织模块的方法,称之为包。包是含有Python模块的文件夹。

         当一个文件夹下有   init   .py时,意为该文件夹是一个包,其下的多个模块构成一个整体,而这些模块都可通过同一个包导入其他代码中。  init   .py文件 用于组织包,方便管理各个模块之间的引用、控制着包的导入行为。  init   .py文件可以什么内容都不写,存在即可,相当于一个标记。但若想使用from pacakge_1 import *这种形式的写法,需在  init   .py文件中加上:__all__ = [‘file_a’, ‘file_b’] #package_1下有file_a.py和file_b.py,在导入时  init   .py文件将被执行。__all__是重要的变量,用来指定此包被import *时,哪些模块会被import进当前作用域中。不在__all__列表中的模块不会被其他程序引用。可以重写__all__,如__all__= [‘当前所属包模块1名字’, ‘模块1名字’],如果写了这个,则会按列表中的模块名进行导入。

         在模糊导入时,形如from package import *,*是由__all__定义的。在模糊导入时,形如from package import *,*是由__all__定义的。在精确导入时,形如 from package import *、import package.class。   path   也是一个常用变量,是个列表,默认情况下只有一个元素,即当前包的路径。修改   path   可改变包内的搜索路径。


#、参考链接

  1. Python 3.x | 史上最详解的 导入(import)
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

3D感知巨头

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值