引用计数机制
    python里每一个东西都是对象,它们的核心就是一个结构体Pyobject
    Pyobject是每个对象必有的内容,其中ob_refcnt做为引用计数,当对象有新的引用时,它的ob_refcnt会增加,当引用它的对象被删除,其ob_refcnt会减少
    优点:1.简单 2.实时性
    缺点:1.维护引用计数会消耗资源 2.循环引用(采用信息标记和分代收集)
    查看一个对象的引用计数
    import sys
    sys.getrefcount()
    内存泄露:申请了某些内存,但是忘记了释放,那么这就造成了内存的浪费
    触发垃圾回收:
    1.当gc模块的计数器达到阈值的时候,自动回收垃圾
    2.调用gc.collect() 手动回收垃圾
    3.程序退出的时候,python解释器来回收垃圾

    大整数池和小整数池:小整数池提前将[-5,256]的数据创建好

    python pep8原则:
    代码布局:
    1.缩进:4个空格的缩进,一个Tab=4个空格
    2.行宽:最大长度79,换行可以使用反斜杠,最好使用圆括号
    3.空行:1.类和top-level函数定义之间空两行 2.类中的方法定义之间空一行 3.函数内逻辑无关段落之间空一行 4.其他地方尽量不要再空行
    模块导入:导入始终在文件的顶部,在模块注释和文档字符串之后,在模块全局变量和常量之前。不同模块分行导入,内置模块放在前面,第三方模块在后面导入
    命名规范:尽量不要使用小写字母l,大写字母O作为单个字符的变量名
    1.包和模块名:模块名要简短,全部用小写字母,可使用下划线以提高可读性,包名和模块名类似,但不推荐使用下划线
    2.类名称:类名通常使用大驼峰命名方式
    3.函数和方法参数:总是使用self作为实例方法的第一个参数;总是使用cls作为类方法的第一个参数
    4.方法名称和实例变量:使用函数命名规则,必要时用小写字母分隔下划线

    python命令行参数:python可以使用sys模块中的sys.argv来获取命令行参数
    argparse模块:可以编写用户友好的命令行界面,它定义了它需要的参数,并将找出如何解析这些参数,还会自动生成帮助和用法信息
    创建解析对象
    parse=argparse.ArgumentParser(prog=文件名,usage=描述程序用途,description=help信息前显示,epilog=help信息后显示)
    print(parse.printhelp())
    添加参数选项add_argument 参数有两种name or flags 可选’
    ‘和位置参数
    用’_’来区分可选和位置参数
    parse.add_argument(‘name’,type=str,help=’’,位置参数必选
    ‘-s’可选标识,’—name’,type=str,help=’’)可选参数
    result=parse.parse_args()开始解析参数
    可以用result参数名调用参数
    dest参数名
    parse.add_argument(‘-u’,dest=’user’,type=str)

    Pyinstaller命令的常用参数:
    -h,—help:查看帮助
    —clean:清理打包过程中的临时文件
    -D,—onedir:默认值,生成dist目录
    -F,—onefile:在dist文件夹中只生成独立的打包文件
    -i<图标文件名.ico>:指定打包程序使用的图标(icon)文件

    random库采用梅森旋转算法(Mersenne twister)生成伪随机数序列,可用于除随机性要求更高的加解密算法外的大多数工程应用。
    PIL库是Python语言在图像处理方面的重要第三方库,支持图像存储、处理和显示,它能够处理几乎所有的图片格式,可以完成对图形的缩放、剪裁、叠加以及向图像添加线条、图形和文字等。
    PIL库可以完成图像归档和图形处理两方面功能需求。
    Python语言中Web开发框架第三方库有:Flask、Django、Pyramid,Tornado
    Beautifulsoup4库,也称为Beautiful Soup库或bs4库,用于解析和处理HTML和XML。
    Python网络爬虫领域的第三方库:scrapy和request、PySpider。
    openpyxl是python语言中文本处理方向的第三方库
    Python语言中开发用户界面方向的第三方库:PyQt5、wxPython、PyGTK
    Aracde是python语言中的图形库。
    OpenCV是一个强大的图像和视频工作库。它提供了多种程序接口,支持跨平台(包括移动端)应用。除了对图像进行基本处理外,还支持图像数据建模,并预制了多种图像识别引擎,如人脸识别。
    Python语言中数据分析方向的第三方库:numpy、scipy、pandas
    Python语言中数据可视化析方向的第三方库:matplotliB、TVTK、mayavi。
    机器学习领域第三方库:Tensorflow MXNet PyTorch Theano、scikit-learn,
    mxnet是Python语言中深度学习方向的第三方库。