【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
这节的内容主要讲下模块的使用,很好很强大,有木有。在开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护。为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就相对较少,很多编程语言都采用这种组织代码的方式。下面就来认识一下关于模块:
(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/。
以上的内容很浅显,易于理解,希望能帮助大家快速进入开发。
来源:oschina
链接:https://my.oschina.net/u/3747963/blog/1611737