• 模块和包


    1、什么是模块

        模块是一系列功能的集合体

        常见的模块形式(自定义模块、第三方模块、内置模块):

            1、一个module.py文件就是一个模块,文件名是module.py,而模块名是module

            2、一个包含有__init__.py文件的文件夹也是模块

            3、已被编译为共享库或DLL的C或C++扩展

            4、使用C编写并链接到python解释器的内置模块

    2、为什么要用模块

        1、用第三方或者内置的模块是一种拿来主义,可以极大地提升开发效率

        2、自定义模块即将我们自己程序中需要用到的公共的功能写入一个python文件

            然后程序的各部分组件可以通过导入的方式来引用/重用自定义模块中的功能

    3、如何用模块

        导入的方式有两种

        import 模块名

        from 模块名 import 具体的功能

     4 模块的搜索路径

    一个py文件就是一个模块,在导入时必须从某一个文件夹下找到该py文件

    模块的搜索路径指的就是在导入模块时需要检索的文件夹们

    导入模块时查找模块的顺序是:

        1、先从内存中已经导入的模块中寻找

        2、内置的模块

        3、环境变量sys.path中找

            强调:sys.path的第一个值是当前执行文件的所在的文件夹

    5  编写好的一个python文件可以有两种用途:
        一:脚本,一个文件就是整个程序,用来被执行
        二:模块,文件中存放着一堆功能,用来被导入使用

    6包

    6.1、什么是包

        包是模块的一种形式,包的本质就是一个含有__init__.py文件的文件夹

    6.2、为什么要有包

          包是模块的一种形式,即包是用来被导入的,但包的本质就是一个文件夹(文件夹的作用就是用来存放文件的,包内所有的文件都是用来被导入使用的)

    6.3、如何用包

        导入包就是在导包下的__init__.py

        import ...

        from ... import...

       6.4 主要的问题:

            1、包内所有的文件都是被导入使用的,而不是被直接运行的

            2、包内部模块之间的导入可以使用绝对导入(以包的根目录为基准)与相对导入(以当前被导入的模块所在的目录为基准)

                推荐使用相对导入

            3、当文件是执行文件时,无法在该文件内用相对导入的语法

                只有在文件时被当作模块导入时,该文件内才能使用相对导入的语法

            4、凡是在导入时带点的,点的左边都必须是一个包

                    import aaa.bbb.m3.f3 # 错误

    7、绝对导入和相对导入

    我们的最顶级包glance是写给别人用的,然后在glance包内部也会有彼此之间互相导入的需求,这时候就有绝对导入和相对导入两种方式:

    绝对导入:以glance作为起始

    相对导入:用.或者..的方式最为起始(只能在一个包中使用,不能用于不同目录内)

    例如:我们在glance/api/version.py中想要导入glance/cmd/manage.py



    
    
  • 相关阅读:
    Coursera台大机器学习课程笔记8 -- Linear Regression
    近两年跟踪速度较快的算法小结(转)
    hdu 4278 Faulty Odometer
    hdu 2571 命运
    hdu 6168 Numbers
    Codeforces 888C:K-Dominant Character
    poj 3061 Subsequence
    poj 1852 Ants
    1115. Counting Nodes in a BST (30)
    1064. Complete Binary Search Tree (30)
  • 原文地址:https://www.cnblogs.com/wanglecn/p/9204439.html
Copyright © 2020-2023  润新知