【问题标题】:What happens when import modules in python?在 python 中导入模块时会发生什么?
【发布时间】:2012-10-29 19:12:11
【问题描述】:

我真的想知道当我们在 python 中导入模块文件时会发生什么。我的意思是它的过程,换句话说,python 将运行或检查什么东西?!像__init__.py 或 sys.modules 等。 例如,我知道__init__.py 是每个包中的必要文​​件,我想知道 python 在导入时对这些文件有什么作用? 请为我点亮这个。

【问题讨论】:

    标签: python import module initialization package


    【解决方案1】:

    阅读tutorial section about modulesimport statement 的文档、imp module(尤其是示例)以及__import__ builtin 的文档。那应该会让你走得很远。如果您还想了解更多,我建议您问一个具体的问题,这个问题有点宽泛。

    编辑:再次阅读您的问题后,您的问题有一个特定部分,关于 __init__.py 在包中的作用。它基本上可以是空的或包含导入该包时将执行的初始化代码。详情请参阅section about packages

    __init__.py 中,您还可以设置__all__,它定义了当您执行from yourpackage import * 时要导入的符号。这在importing * from a package中有详细解释。

    【讨论】:

    • 谢谢卢卡斯!现在我明白了当我们导入一个模块时,python首先在内置模块中搜索它,如果在那里找不到它,python在sys.path中将它搜索为.py模块,好吗?我想知道 python 什么时候在我们的包中找到这个模块,它对 /__init__.py 文件有什么作用?当它是一个空文件时,python 会做什么?我们可以在这个文件中放入什么样的代码?你能举个例子吗?谢谢
    • @Deniz __init__.py 只是在您导入包时像任何其他模块一样被执行。你可以在其中做任何你想做的事情,就像在任何其他 Python 模块中一样。如果为空,它的作用只是作为一个标记文件来区分 Python 包和常规目录。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-11-16
    • 2013-04-21
    • 2013-10-05
    • 2013-02-23
    • 1970-01-01
    相关资源
    最近更新 更多