• Python中package的导入语法


    在Python中,一个目录被称为一个package。import和from语法除了导入module文件之外,还可以导入package,语法如下:

    # import语法
    import dir1.dir2.mod
    
    #from语法
    from dir1.dir2.mod import x

    上面的导入语句中,.用来分割目录和文件名,上面导入的目录结构为dir1/dir2/mod.py。当然,也可以只导入目录:

    import dir1
    
    import dir1.dir2
    
    from dir1 import dir2

    搜寻

    在以目录的方式导入的时,必须注意,在sys.path提供的路径中,必须存在一个路径,这个路径拼接上导入的路径,是实际存在的。比如sys.path中存在一个路径为:/home/username/python,那么这个路径拼接上dir1/dir2/mod.py,即/home/username/python/dir1/dir2/mod.py必须实际存在,否则导入失败。

     

    __init__.py

    要导入一个package,除了要满足上述的搜寻条件,还必须为导入的每一个目录,添加一个名为__init__.py的文件,这个文件可以是空的(实际使用中,大部分都是如此),也可以包含代码,在首次导入(并不是每次执行)这个目录时,会执行__init__.py中的代码。导入的每一目录,最终在Python中都实现成为一个module对象,而在__init__.py中赋值的变量和函数,都成为相应module对象的属性,比如dir2中的__init__.py代码如下:

    X = 999
    
    def test():
        print("dir2")

    那么导入dir2之后,可以看到:

    >>>dir2.X
    999
    
    >>>dir2.test()
    dir2

    reload

    和module文件一样,package目录也支持reload:

    reload(dir1)
    
    reload(dir1.dir2)
  • 相关阅读:
    《图像处理实例》 之 Voronoi 图
    《图像处理实例》 之 Voronoi 图
    《图像处理实例》 之 Voronoi 图
    Docker 1.13.0 详细更新日志
    Docker 1.13.0 详细更新日志
    Docker 1.13.0 详细更新日志
    Docker 1.13.0 详细更新日志
    Ubuntu上安装VMware tools
    Ubuntu上安装VMware tools
    Casper CBC 简要说明
  • 原文地址:https://www.cnblogs.com/chaoguo1234/p/9350132.html
Copyright © 2020-2023  润新知