首页 > 后端开发 > Python教程 > 在Python中'import *”是否导入__init__.py?

在Python中'import *”是否导入__init__.py?

Linda Hamilton
发布: 2024-12-10 08:10:10
原创
1065 人浏览过

Does

Python 中的“import *”导入是什么以及它与 __init__.py 有何关系?

Python 中的“import *” " 语句将指定模块中的所有非私有(即不以下划线开头)符号导入到当前模块中。这允许直接访问导入的符号,而无需使用模块名称前缀。

“import *”是否导入 __init__.py?

不,“import *”语句不会自动导入在包含文件夹中找到的 __init__.py 文件。 __init__.py 是一个特殊文件,Python 在导入模块时使用它来初始化模块。要显式导入 __init__.py,必须使用带有模块名称的“import”语句,如下所示:

from project.model import __init__
登录后复制

“import *”的优点和缺点:

“import *”的主要优点是方便一次导入所有符号。但是,通常不鼓励这种做法,因为:

  • 命名空间冲突:导入的符号可能与当前模块中的现有符号冲突。
  • 效率低下:导入大量符号可能会减慢速度程序。
  • 缺乏明确的文档:使用“*”时可能很难跟踪导入符号的来源。

首选实践:

建议不要“导入*”,而是仅导入您需要的特定符号。这可以使用以下任一方法来完成:

  • 显式导入:

    from math import pi
    登录后复制
  • 模块别名:

    import math as m
    登录后复制

子模块和“import *”:

当模块包含子模块时,“import *”不会不导入这些子模块,除非它们明确包含在主模块的 all 属性中module.

结论:

虽然“import *”很方便,但通常不鼓励显式导入或模块别名。 __init__.py 是一个用于初始化模块的特殊文件,必须使用“import”语句单独导入。

以上是在Python中'import *”是否导入__init__.py?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板