Python学习笔记——模块

模块概述

当代码越来越多的时候,将代码放入一个py文件难以维护,所以我们将代码分拆放入多个py文件,可以使不同py文件中同一名字的变量或函数互不影响。
我们可以把函数看成一块积木,模块就是一盒主题积木,通过它可以拼出某一主题的东西。在Python中,一个py文件就成为一个模块,通常情况下,我们把实现某一特定功能的代码放置在一个文件中作为一个模块,从而方便其他程序和脚本导入并使用。

注意:
创建模块时,设置的模块名尽量不要与Python自带的标准模块名相同
模块文件的扩展名必须是“.py”
模块名需要区分大小写字母

  • 引用其他模块

      import math         #引用math模块
      print math.pow(2,10)      #调用math模块的函数
    

    如果模块名比较长不容易记住,可以在导入模块时使用as关键字为其设置一个别名,通过别名也可以使用这个模块,例如:导入名为mostmediasenci并调用其中的fun_bmi函数:

    import mostmediasenci as m
    m.fun_bmi("wang",1.66,115)
    
  • 使用from…import语句导入模块
    在使用import语句导入模块时,每执行一条import语句就会创建一个新的命名空间(namespace)。如果不想在每次导入模块时创建新的命名空间,而是将具体的定义导入到当前的空间里,可以使用from…import语句。使用from…impot语句导入模块后,不需要再添加前缀,直接通过具体的变量、函数、类名等访问即可。

    from modlename import menber
    

    其中:
    modlename:模块名称,需要和定义模块时设置的模块名称大小写保持一致
    member:用于指定要导入的变量、函数或者类等。可以同时导入多个定义,各个定义之间使用“,”分隔。如果想导入全部定义,可以使用通配符“*”代替。
    例:

    from test import getinfo     #导入test模块的getinfo函数
    from test import getinfo,showinfo     #导入test模块的getinfo和showinfo函数
    from test import *     #导入test模块的全部定义
    

    注:在使用from…import导入模块中的定义时,需保证导入内容在当前命名空间中是唯一的。
    使用通配符“*”导入模块的全部定义后,想要查看具体导入了哪些定义,可以通过显示dir()函数查看,例如执行print(dir())语句。

  • 使用_future_
    Python的新版本会引入新的功能,但是,实际上这些功能在上一个老版本中就已经存在了。 要“试用”某一新的特性,就可以通过导入__future__模块的某些功能来实现。
    例如,Python 2.7的整数除法运算结果仍是整数,但是,Python 3.x已经改进了整数的除法运算,“/”除将得到浮点数,“//”除才仍是整数。
    要想在Python 2.7中引入3.x的除法规则,需要导入__future__的division
    在这里插入图片描述

使用模块可以避免函数名和变量名重名引发的冲突,为了解决模块名重复,提出了包的概念,它将一组功能相近的模块组织在一个目录下,既起到规范代码的作用,又能避免模块名重名引起的冲突。

  • 创建包
    创建包实际上就是创建一个文件夹,并且在该文件夹中创建一个名为“_ init_.py”的python文件,在"_ init _ .py"文件中可以不编写任何代码,也可以编写一些Python代码,在_ init_.py文件中编写的代码,在导入包时自动执行。
    _ init_.py文件是一个模块文件,模块名为对应的包名。例如:在settings包中创建的 _ init_.py文件,对应的模块名为settings。

  • 使用包
    创建包以后,就可以在包中创建相应的模块。从包中加载模块有以下三种方式:

    1. import 完整包名+模块名

      import settings.size
      
    2. from 完整包名 import 模块名

        from settings import size
      
    3. from 完整包名+模块名 import 定义名

      from settings.size import width,height
      

      (width,height为settings包下size模块中的变量)

导入和使用标准模块

在Python中自带了很多实用的模块,称为标准模块,我们可以直接使用import语句导入到Python文件中使用。例:导入标准模块random并调用其randint()函数生成指定范围随机整数。

import random                                     #导入标准模块random
print (random.randit(0,10))                  #输出0-10随机数

Python常用的内置标准模块:

模块名 描述
sys 与Python解释器及其环境操作相关的标准库
time 提供与时间相关的各种函数的标准库
os 提供了访问操作系统服务功能的标准库
calendar 提供与日期相关的各种函数的标准库
urlib 用于读取来自网上(服务器上)的数据的标准库
json 用于使用JSON序列化和反序列化对象
re 用于在字符串中执行正则表达式匹配和替换
math 提供标准算数运算函数的标准库
decimal 用于进行精准控制运算精度、有效数位和四舍五入操作的十进制运算
shutil 用于进行高级文件操作,如复制、移动和重命名等
logging 提供了灵活的记录事件、错误、警告和调试信息等日志信息的功能
tkinter 使用Python进行GUI编程的标准库

除此之外,Python还提供了很多其他模块,可以在Python的帮助文档中查看。
具体方法:打开Python安装路径下的Doc目录,在该目录中的扩展名为.chm的文件即为Python的帮助文档。

第三方模块

除了Python内置的标准模块,还有很多第三方模块可以使用,可以在Python官网推出的https://pypi.org/中找到。
使用第三方模块时,需要先下载并安装该模块,然后就可以像使用标准模块一样导入并使用了。下载和安装第三方模块可以使用Python提供的pip命令实现:

pip <command> [modulename]

参数说明:

  1. command:用于指定要执行的命令。
    常用的参数值有:install(安装第三方模块),uninstall(卸载已经安装的第三方模块),list(显示已经安装的第三方模块)。
  2. modulename:可选参数,用于指定要安装或卸载的模块名。当command为install或uninstall时不能省略。

例:

pip install numpy

执行上述代码,将在线安装numpy模块。

常见第三方模块

  • prettytable打印表格
    prettytable常见操作

你可能感兴趣的:(python)