美文网首页虫虫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