zoukankan      html  css  js  c++  java
  • 洗礼灵魂,修炼python(49)--巩固篇—包

    包(Package)

    这个其实前面也说过的,不过同模块一样,没有具体的解析

    1.什么是包

    在创建许许多多模块后,我们可能希望将某些功能相近的文件组织在同一文件夹下,那么此文件夹(目录)即为包,文件夹(目录)名即为包名,但包有一个特征与其他普通文件夹区分,包目录下必须有一个名为__init__.py的文件,__init__.py的内容可以为空,主要是为了避免python将文件夹名当作其他文件夹一样的处理为普通的字符串。一般用来进行包的某些初始化工作或者设置__all__值,__all__是在from package-name import *这语句使用的,表示导入全部定义过的模块。

     

    2.有哪些包

    查看包的命令和查看模块的命令是一样的,不再赘述

     

    3.作用

    用于将一组模块归类到同一个目录中,整理某些功能相近的文件组织在一起,在实际的开发中,可能因为代码的不断增加,我们需要维护代码的可利用和可原理性,需要将带有不同功能的或者相同功能的模块归类在一起,这其实和模块一个道理,模块管理的是代码,而包管理的是模块

     

    4.怎么自定义包

    1)手动建一个文件夹

    2)在文件夹下建立__init__.py文件

    3)再在同一文件夹下建立你自己的模块

    然后就可以导入使用了

     

    5.怎么使用包

    使用包的方式跟模块也类似,使用import导入包,或者from + import来导入包中的部分模块。包目录下为首的一个文件便是 __init__.py,假如子目录中也有 __init__.py 那么它就是这个包的子包了。

    例:使用上面例子的已经建好的自定义包test里的方法:

    使用from XX import XX 方法也一样,注意导入包和导入模块细微的区别就行,比如像这样就会报错:

    使用from XX import  XX时, 后面只能跟一个方法,不能跟模块名.方法,必须这样才行:

     

     

    注意:导入操作时,默认只在父路径下(即包的路径)的模块内搜索导入。

    如果需要导入一个其他包的模块,则需要先导入sys模块,添加一个搜索路径即可:

    例:

    其中,sys.path就是python默认的模块搜索路径,注意导入的包根目录下必须带有__init__.py文件

    6.包和类,模块的区别

     

    • 类:类的概念在许多语言中出现,很容易理解。它将数据和操作进行封装,以便将来的复用
    • 模块:在Python可理解为对应于一个py文件。在创建了一个py文件后,定义了某些函数和变量
    • 包:包含有模块和一个特殊的__init__.py文件的文件夹或者目录

    在某些特定情况下,可以把包看作一个模块,把模块看作一个包

  • 相关阅读:
    Java线上应用故障排查之一:高CPU占用【转】
    JAVA 之 Tomcat知识框架【转】
    FileZilla 配置备份与还原【转】
    linux删除第几天日志【原创】
    sar命令使用【转】
    Mysql Group Replication 简介及单主模式组复制配置【转】
    grep 中的正则表达式【转】
    java程序out of memory【转】
    Java笔记18:JUnit单元测试
    Java笔记17:导出可执行jar包
  • 原文地址:https://www.cnblogs.com/Eeyhan/p/7751568.html
Copyright © 2011-2022 走看看