美文网首页
009-模块

009-模块

作者: 痞子_4ae7 | 来源:发表于2020-05-14 11:49 被阅读0次

    模块介绍

    • 概念
      • Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。
    • 作用
      • 模块让你能够有逻辑地组织你的 Python 代码段。
      • 把相关的代码分配到一个模块里能让你的代码更好用,更易懂。
      • 模块能定义函数,类和变量,模块里也能包含可执行的代码。

    模块使用

    • 模块的引入
      • 引入语法
      import module1[, module2[,... moduleN]
      
      导入多个模块的话,逗号隔开就可以
      比如要引用模块random,就可以在文件最开始的地方用 import random 来引入。
      • 调用语法
      模块名.函数名(参数)
      print(random.randint(1,6))
      

    注意:一个模块只会被导入一次,不管你执行了多少次import

    • 模块中函数,变量,类的引入

      • from…import 语句 语法
      from modname import name1[, name2[, ... nameN]]
      
      • from…import 语句 案例
      from MyTools import  showTenRandomNumber,showTenRandomNumber1
      

      Python 的 from 语句让你从模块中导入一个指定的部分到当前命名空间中
      导入之后,被导入的方法可以直接使用方法名完成调用,不再需要模块名

      showTenRandomNumber()
      showTenRandomNumber1()
      
    • 模块中所有内容的引入

      • from…import * 语法
      from modname import *
      
      • from…import * 案例
      from  MyTools import *
      

      直接通过函数名就可以完成调用

      showTenRandomNumber()
      showTenRandomNumber1()
      print(PI)
      

    自定义模块的制作

    • 封装任意一个工具类()

    模块的测试

    • 测试代码
    在模块中,完成代码的测试
    
    • 使用模块
    导入模块,发现模块中的测试代码会先执行一次,
    解决方案:给测试代码加判断条件:    
    if __name__ == '__main__':
        pass
    __name__ :python解释器主动执行的代码才会为'__main__'
    
    • all的用法(python3之后不建议使用)

      • import 不受影响
      • from 模块 import *
      使用from 模块  import *  只会导入__all__中包含的方法
      __all__ = ['showTenRandomNumber']
      

    Python中的包

    • 概念
    包是一个分层次的文件目录结构,它定义了一个由模块及子包,
    和子包下的子包等组成的 Python 的应用环境,包中要包含一个__init__.py模块
    
    • 新的模块名
    包名.模块名
    
    • 包中模块的导入方式
    import package1.module1
    或者
    from  package1 import module1
    
    • 包中数据的访问方式
    package.module1.moduleTest1()
    
    • _ _ init_ _.py 的内容
    __init__.py 也是一个模块,可以在模块中写任意代码
    首次使用包的时候,__init__.py会默认执行一次
    也可以写:
    from . 模块1 import *
    from . 模块2 import *
    这样在导入包的时候,__init__.py中的代码会默认执行
    
    这样的好处是: 可以直接导入包
    弊端,如果两个包中有同名变量,会出问题
    

    模块的发布

    • 为什么要发布

      • 查找顺序(sys.path)
      • 安装到系统目录下
    • 怎么发布?

      • 要发布的目录结构(uft-8格式)
      |----setup.py
      |----package1
            |----module1
            |----module2
      |----package2
            |----module3
            |----module4
      
      • 编辑setup文件
      from  distutils.core import setup
      setup(name='压缩包的名字',version='1.0',description='描述',
      author='大卫',py_modules=['package1.模块1','package1.模块2',
      'package2.模块1'])
      
      • 构建模块
      DOS窗口找到该文件
      python setup.py build   
      
      • 生成发布压缩包
      python setup.py sdist
      

    自定义模块的安装、使用

    • 安装的方式
      • 找到模块的压缩包
      • 解压
    • 进入文件夹
    • 执行命令 python setup.py install
    注意:如果在install的时候,
    指定目录安装,可以使用
    python setup.py install --prefix=安装路径
    

    暴力安装

    • 直接将包复制到site-packages

    相关文章

      网友评论

          本文标题:009-模块

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