美文网首页
[python]__init__.py

[python]__init__.py

作者: VanJordan | 来源:发表于2019-04-30 09:52 被阅读0次
    • __init__.py是包的一部分,当包被导入的时候,__init__.py是被隐式的执行。
    • 同时如果目录中有__init__.py说明这个目录是一个包,因此在下面的例子中,如果此时的所在的pathmydir的话,可以使用命令import spam.module导入module.py中的东西,或者from spam import module,如果没__init__.py的时候,Python将不再在该目录中查找子模块,因此导入模块的尝试将失败。
    • __init__.py文件经常是空的,但是可以在__init__.py里面控制使用包里面特定的部分,
    mydir/spam/__init__.py
    mydir/spam/module.py
    
    • 使用__init__.py主要有两个好处,一个好处是,可以很方便的导入这个文件夹中是任何包,比如你有下面的文件结构,导入add的时候可以from your_package import add,而不用from your_package.file1 import add,第二个好处是可以在__init__.py对模型进行初始化,比如对logging.config进行初始化,毕竟调用包的时候首先会执行__inti__.py
    your_package/
      __init__.py
      file1.py/
      file2.py/
        ...
      fileN.py
    
    # in __init__.py
    from file1 import *
    from file2 import *
    ...
    from fileN import *
    
    # in file1.py
    def add():
        pass
    
    • 还有一个重要的特性是即使一个包被调用很多次,他的__init__.py也只执行一次。

    相关文章

      网友评论

          本文标题:[python]__init__.py

          本文链接:https://www.haomeiwen.com/subject/krhmnqtx.html