• 技术文章 >Python技术 >Python高级

    Python中包如何嵌套

    爱喝马黛茶的安东尼爱喝马黛茶的安东尼2019-06-28 17:41:41原创4205

    _ _init_ _.py文件

    _ _init_ _.py控制着包导入行为。

    _ _init_ _.py为空,意味着仅仅把这个包导入,不会导入包中的模块。

    在_ _init_ _.py文件中,定义一个_ _all_ _变量,它控制着from包名import*是导入的模块。

    可以在_ _init_ _.py文件中编写内容,当导入时,这些语句就会被执行。

    __init__.py模块

    __all__ = ["send","receive"]
    print("你导入的msg包")
    def test():
        print("这里是msg包里面的test")
    demo.py模块
    import msg
    msg.test()

    运行结果为:

    你导入的msg包
    这里是msg包里面的test

    相关推荐:《Python视频教程

    嵌套的包

    假定我们的包的例子有如下的目录结构:

    A/#包A
        __init__.py
        a1.py
        sub_B/#包B
            __init__.py
            b1.py
            b2.py
        sub_C/#包C
            __init__.py
            c1.py
            c2.py
        sub_D/#包D
            __init__.py
            d1.py
            d2.py

    A是最顶层的包,sub_B等是它的子包,我们可以这样导入子包:

    import A.sub_B.b1

    你也可使用 from-import 实现不同需求的导入。

    第一种方法是只导入顶层的子包,然后使用属性点操作符向下引用子包树:

    from A import sub_B
    sub_b.b2

    此外,我们可以还引用更多的子包:

    from A.sub_B import b1

    事实上,你可以一直沿子包的树状结构导入。

    在我们上边的目录结构中,我们可以发现很多的 __init__.py 文件。这些是初始化模块,from-import 语句导入子包时需要用到它。 如果没有用到,他们可以是空文件。

    专题推荐:python 包 嵌套
    上一篇:Python中的多态是什么 下一篇:Python中包如何发布?

    相关文章推荐

    全部评论我要评论

    © 2021 Python学习网 苏ICP备2021003149号-1

  • 取消发布评论
  • 

    Python学习网