• 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__=[可以通过*访问的模块]
    
    ------学习贵在分享,贵在记录,贵在总结。
  • 相关阅读:
    Java 线程具有五中基本状态 ?
    可以直接调用 Thread 类的 run ()方法么?
    创建线程的三种方式的对比?
    FutureTask 是什么 ?
    什么是 CAS?
    如何让正在运行的线程暂停一段时间?
    什么是不可变对象(immutable object)?Java 中怎么 创建一个不可变对象?
    创建线程的有哪些方式?
    Semaphore 有什么作用 ?
    CopyOnWriteArrayList 可以用于什么应用场景?
  • 原文地址:https://www.cnblogs.com/kevin1220/p/14428622.html
Copyright © 2020-2023  润新知