美文网首页虫虫Python
Python高级-包管理

Python高级-包管理

作者: Yuanshuo | 来源:发表于2019-07-17 08:12 被阅读14次
    The core values of Chinese socialism

    1.模块

    • 一个模块的就是包含Python代码的文件
    • 为什么用模块
      • 程序太大,编写维护不方便,需要拆分
      • 模块可以增加代码重复利用的方式
      • 当做命名空间使用,避免命名冲突
    • 如何定义模块
      • 模块就是普通文件,任何代码可以直接书写
      • 根据书写规范,最好在模块中编写一下内容
        • 函数(单一功能)
        • 类(相似功能的组合,或者类似业务模块)
        • 测试代码
    • 如何使用模块
      • 模块直接导入

        • 加入模块名称直接以数字开头,需要借助importlib帮助
      • 语法

          import module_name
          module_name.function_name
          module_name.calss_name
        

        or

          import module_name as 别名
          别名.function_name
          别名.calss_name
        
          # 有选择性导入
          # 使用时可以直接使用导入的内容,不需要前缀
          from module_name import func_name, class_name
        

        案例P03

      • if __name__ == ""__main__"的使用

        • 可以有效的避免模块代码被导入的时候被动执行的问题
        • 建议所有程序都已此代码为入口

    2.模块的搜索路径和存储

    • 什么是模块的搜索路径
      • 加载模块的时候,系统会在哪些地方寻找此模块
    • 系统默认的模块搜索路径
      import sys
      sys.path # 该属性可以获取路径列表
      

    案例P04

    • 添加搜索路径

      sys.path.append(dir)

    • 包是一种组织管理代码的方式,包里面存放的是模块
    • 用于将模块包含在一起的文件夹就是包
    • 自定义包的结构

    /---包
    /---/---init.py 包的标志文件
    /---/---模块1
    /---/---模块2
    /---/---子包(子文件夹)
    /---/---/---init.py
    /---/---/---子包模块1
    /---/---/---子包模块2

    • 包的导入操作
      • import package_name

        • 直接导入一个包,可以使用init.py中的内容
        • 使用方式
        package_name.func_name()
        package_name.class_name.func_name()
        
      • import package_name as p

        • 此种方式是默认对init.py内容的导入
      • import package.module

        • 导入包中某一个具体的模块
        package.module.func_name()
        package.module.class.func()
        package.module.class.var()
        
      • import package_name.module as pm

      • from package import module1, module2

        • 此种导入方法不执行init.py

    相关文章

      网友评论

        本文标题:Python高级-包管理

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