Python中的模块

Python中的库
Python的标准库有:

名称	作用
builtins    内建函数默认加载
time    时间
calendar    日历
hashlib    加密算法
copy    拷贝
functools    常用的工具
re    字符串正则匹配
datetime    为日期和时间处理同时提供了简单和复杂的方法。
zlib    直接支持通用的数据打包和压缩格式:zlib,gzip,bz2,zipfile,以及 tarfile。
random    提供了生成随机数的工具。
math    为浮点运算提供了对底层C函数库的访问。
sys    工具脚本经常调用命令行参数。这些命令行参数以链表形式存储于 sys 模块的 argv 变量。
glob    提供了一个函数用于从目录通配符搜索中生成文件列表。
os    提供了不少与操作系统相关联的函数。
multiprocessing    多进程(windows系统)
fork           处理进程的模块(linux系统)
threading    多线程
json    编码和解码json对象
logging    记录日志和调试
Python常用的第三方库有:

名称	作用	使用参考
Scrapy	专业爬虫工具常用的库。	
requests-html  专门爬取网站的库。
Requests	http库。	
Pillow	是PIL(Python图形库)的一个分支。适用于在图形领域工作的人。	
matplotlib	绘制数据图的库。对于数据科学家或分析师非常有用。	 
OpenCV	图片识别常用的库,通常在练习人脸识别时会用到	
pytesseract	图片文字识别,即OCR识别	
wxPython	Python的一个GUI(图形用户界面)工具。	 
Twisted	对于网络应用开发者最重要的工具。	 
SymPy	SymPy可以做代数评测、差异化、扩展、复数等等。	 
SQLAlchemy	数据库的库。	 
SciPy	Python的算法和数学工具库。	 
Scapy	数据包探测和分析库。	 
pywin32	提供和windows交互的方法和类的Python库。	 
pyQT	Python的GUI工具。给Python脚本开发用户界面时次于wxPython的选择。	 
pyGtk	也是Python GUI库。	 
Pyglet	3D动画和游戏开发引擎。	 
Pygame	开发2D游戏的时候使用会有很好的效果。	 
NumPy	为Python提供了很多高级的数学方法。	 
nose	Python的测试框架。	 
nltk	自然语言工具包。	 
IPython	Python的提示信息。包括完成信息、历史信息、shell功能,以及其他很多很多方面。	 
BeautifulSoup	xml和html的解析库,对于新手非常有用。
greenlet    协程处理
gevent    协程处理(最好用)	 

如何自定义模块
在Python中,模块是代码组织的一种方式,把功能相近的函数或者类放到一个文件中,一个文件(.py)就是一个模块(module),模块名就是文件名去掉后缀py。
模块
__all__ = ['number', 'add', 'minus', 'Person']  # 在来这里配置 from 模块名 import * 的时候导入时可以访问到的内容
# 定义变量
number = 100


# 定义函数
def add():
    print('使用加法')


def minus(n):
    print('使用减法')


# 定义类
class Person:
    role = '人类'

    def __init__(self, name, age):
        self.name = name
        self.age = age

    def eat(self, food):
        print('{}正在吃{}'.format(self.name, food))

    @classmethod
    def run(cls):
        print('{}可以跑步'.format(cls.role))


def test():
    print('我是测试.....')


# 如果不希望在其他模块中导入的时候进行调用.就会用到__name__
if __name__ == '__main__':
    test()

使用模块
  1. 引入模块方式1
    import 模块名
    模块名.变量 模块名.函数 模块名.类
  2. 引入模块方式2
    from 模块名 import 变量|函数|类
    在代码中直接使用变量,函数, 类
  3. 引入模块方式2
    from 模块名 import *
    导入该模块中所有的内容
  4. 无论是用import还是from导入,模块里面所有的内容都会被加载
    如果不希望进行调用.就会用到__name__
    在自己的模块里面__name__==main
    在其他模块中通过导入的方式调用的话,name:模块名
# 方式1
import A

# 使用模块中的变量
print(A.number)
# 使用模块中的函数
A.add()

p = A.Person('lucy', 20)
p.eat('面条')
A.Person.run()

# 方式1
from A import number, add, Person

# 使用模块中的变量
print(number)
# 使用模块中的函数
add()

p = Person('lucy', 20)
p.eat('面条')
Person.run()

注意:
1.  from  模块  import  *  表示可以使用模块里面的所有内容,如果没有定义__all__所有的都可以访问,但是如果添加上了__all__,只有__all__=[' ',' ']列表中可以访问的
2.  from  包  import  *  表示该包中内容(模块)是不能访问的,就需要在__init__.py文件中定义__all__=[可以通过*访问的模块]
------学习贵在分享,贵在记录,贵在总结。
原文地址:https://www.cnblogs.com/kevin1220/p/14428622.html