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

    Python中包如何嵌套

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

    _ _init_ _.py文件

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

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

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

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

    __init__.py模块

    1

    2

    3

    4

    5

    6

    7

    __all__ = ["send","receive"]

    print("你导入的msg包")

    def test():

        print("这里是msg包里面的test")

    demo.py模块

    import msg

    msg.test()

    运行结果为:

    1

    2

    你导入的msg包

    这里是msg包里面的test

    相关推荐:《Python视频教程

    嵌套的包

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

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    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等是它的子包,我们可以这样导入子包:

    1

    import A.sub_B.b1

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

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

    1

    2

    from A import sub_B

    sub_b.b2

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

    1

    from A.sub_B import b1

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

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

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

    相关文章推荐

    全部评论我要评论

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

  • 取消发布评论
  • 

    Python学习网