美文网首页
python学习笔记之--模块

python学习笔记之--模块

作者: itsenlin | 来源:发表于2022-01-09 18:01 被阅读0次

    定义

    • 模块:python语言对代码的一种逻辑组织方式,一个.py文件就称为一个python模块,里面可以包含变量、函数、类等的定义
    • 包:类似java语言,python语言中组织模块的方式是通过包,就是存放模块的一个文件夹,但是要求必须有__init__.py文件存在;包下面可以有子包存在,最下一级是模块

    使用方式

    python类似于go语言,因为有大量的模块才方便了开发,在程序中使用其他人员开发的模块有下面几种方式

    • import语句
      可以一行导入一个模块
      import module1
      import module2
      ......
      import moduleN
      
      也可以一行导入多个模块
      import module1[,module2[, ... moduleN]]
      
    • from-import语句
      实现从一个模块中导入模块的属性(变量、函数、类等),语法如下
      from module import name1[,name2[, ... nameN]]
      
    • 扩展import语句as
      对导入的名称起一个别名,在当前程序中可以使用别名来代替对应导入的名称,在导入名称比较长时比较有用,语法如下
      import module as aliasName
      form module import name as aliasName
      

    注意,如果是包下面的模块,则模块名需要使用包名[.子包名].module形式;例如xml包结构如下:
    itsenlin@itsenlin-PC:/usr/local/lib/python3.8/xml$ tree -L 2
    .
    ├── dom
    │ ├── domreg.py
    │ ├── expatbuilder.py
    │ ├── init.py
    │ ├── minicompat.py
    │ ├── minidom.py
    │ ├── NodeFilter.py
    │ ├── pulldom.py
    │ └── xmlbuilder.py
    ├── etree
    │ ├── cElementTree.py
    │ ├── ElementInclude.py
    │ ├── ElementPath.py
    │ ├── ElementTree.py
    │ └── init.py
    ├── init.py
    ├── parsers
    │ ├── expat.py
    │ └── init.py
    └── sax
    ├── _exceptions.py
    ├── expatreader.py
    ├── handler.py
    ├── init.py
    ├── saxutils.py
    └── xmlreader.py
    itsenlin@itsenlin-PC:
    例如导入domreg模块,需要使用如下语句
    import xml.dom.domreg

    常用标准库

    os模块

    与操作系统接口相关

    sys模块

    与命令行参数、错误程序输出重定向、退出等 相关操作

    re模块

    正则表达式相关操作

    math模块

    与数学运算相关操作

    datetime模块

    与日期、时间相关的操作

    logging椟

    与日志记录相关的操作

    json包

    所有与json格式相关的操作都在json包中实现

    xml包

    所有与xml格式相关的操作都在xml包中实现

    http包和urllib包

    与网络相关的操作在http包和urllib包内部实现

    注意

    • 模块可以被多次导入,但只在第一次导入时模块被执行,也即被导入模块的顶层代码被执行,这就使用__name__属性,参见基础语法中的模块一节

    • 在工程比较大时,有可能会出现循环导入的情况,即a模块中导入b模块,b模块中又导入了a模块;会导致ImportError错误,一般通过架构设计避免这种情况;或者其中一个模块中对应import语句放在函数内部或者文件末尾来解决,要视情况而定

    相关文章

      网友评论

          本文标题:python学习笔记之--模块

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