Python 学习总结(三):巧用各类模块,方便维护

        这节的内容主要讲下模块的使用,很好很强大,有木有。在开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。下面就来认识一下关于模块:

     (1)模块的概念

        在Python中,一个.py文件就称之为一个模块(Module)。使用模块可以避免函数名和变量名冲突。相同名字的函数和变量完全可以分别存在不同的模块中,因此,我们自己在编写模块时,不必考虑名字会与其他模块冲突。但是也要注意,尽量不要与内置函数名字冲突。

     (2)模块分类

        模块大体可以分为三种:

内置模块:如 sys, os, subprocess, time, json 等等,无需安装配置,直接导入使用 自定义模块:注意命名,不要和python自带的模块名称冲突,通过导入使用 开源模块:公开的第三方模块,如Windows下通过pip install + 模块名安装后导入使用

     (3)模块的使用

        前提是Python安装成功,PATH环境变量完整,在第一节已经说过了,可以回顾下。当然了,使用模块的格式很简单,导入就行了:

import语句,导入整个模块:

         import module1,module2,...

from-import语句,导入指定模块的部分属性(如方法):

         from module import name1,name2,...

        下面通过一个创建简单的服务器实例来具体看看:

        目录结构(此时在同一目录下,不同目录下的情况自行尝试)

        hello.py

# hello.py


def application(environ, start_response):
    start_response('200 OK', [('Content-Type', 'text/html')])
    return [b'<h1>hello web!<h1>']

        server.py

# server.py

# 从wsgiref模块导入
import sys
print(sys.path)  # 查看搜索路径
from wsgiref.simple_server import make_server
from hello import application

# 创建一个服务器,IP地址为空,端口8000,处理函数application
httpd = make_server('', 8000, application)
print('Serving HTTP on port 8000...')
# 开始监听HTTP请求
httpd.serve_forever()

        如何知道import是否起作用了?其实执行import时会在模块搜索路径下搜索模块文件,路径包括:程序的主目录、PYTHONPATH(该环境变量根据需要自行配置)目录、标准链接库目录,我们可以自己写代码查看搜索路径:

import sys
print(sys.path)  # 查看搜索路径

        在代码中添加运行后,即可在控制台查看到一系列搜索路径,如果你要导入的模块文件不在这些路径下,则会导入失败。

        若想了解模块的更多内容可参考:https://www.cnblogs.com/bobo0609/p/6938012.html。

    (4)常用的内置模块和第三方模块

        常用的内置模块有:datetime、collections、base64、hashlib、itertools等;

        常用的第三方模块有:Pillow、requests、chardet等;

        若想具体了解各模块的使用可参考:https://www.liaoxuefeng.com/。

        以上的内容很浅显,易于理解,希望能帮助大家快速进入开发。

文章来源:

Author:海岸线的曙光
link:https://my.oschina.net/u/3747963/blog/1611737