zoukankan      html  css  js  c++  java
  • 廖雪峰老师Python教程读后笔记

    廖老师网站:http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000

    花几天时间看了廖老师的python教程,现在总结一下。

    (本人用python工作了一年半,有一定python基础,看过《python核心编程》与部分《python源码剖析》,只把自己觉得有用的记一下)


     

    • 高级特性

      1. 切片,对list和tuple而言

      2. 生成器yield,协程用到,用于异步

      3. 迭代器Iterable(可作用于for),其中,生成器是Iterator对象(可作用于next),但listdictstr虽然是Iterable,却不是Iterator

    • 函数式编程

      1. 高阶函数,一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数(map、reduce、filter、sorted...)

      2. 装饰器,在代码运行期间动态增加功能,使用'@函数名'

      3. 偏函数,可用functools.partial创建

    • 面向对象高级编程

      1. __slots__,限制类实例能添加的属性,也能降低类实例所占内存

      2. @property,神奇的装饰器方法

      3. metaclass元类,可定制类,如果你不懂证明还用不上,type()可创建类

    • 调试与测试

      1. 调试,最低级print,其次断言(assert),最好用logging、pdb(pdb.set_trace())或类似方法

      2. 测试,单元测试(unittest)和文档测试(doctest)

    • 进程和线程

      1. 多进程,os.fork()linux的少用到;multiprocessing,Process创建进程,Pool创建进程池,subprocess创建子进程,QueuePipes进程间通信

      2. 多线程,threading,用Lock作锁;Python解释器由于设计时有GIL全局锁,导致了多线程无法利用多核

      3. ThreadLocal,解决了参数在一个线程中各个函数之间互相传递的问题

      4. 分布式进程,multiprocessing.managers.BaseManager

    • web开发

      1. HTML是一种用来定义网页的文本,用于编写网页;HTTP是在网络上传输HTML的协议,用于浏览器和服务器的通信

      2. HTML定义了页面的内容,CSS来控制页面元素的样式,而JavaScript负责页面的交互逻辑

      3. WSGI:Web Server Gateway Interface,接收HTTP请求、解析HTTP请求、发送HTTP响应的接口

      4. web框架,让我们从WSGI处理函数转移到URL+对应的处理函数,把wsgi抽象出来;python常用的web框架有django、tornado、flask

      5. 使用模板MVC,提高编程效率

    • 异步IO

      1. Coroutine 协程,效率高、不需要锁机制,python中使用生成器yield实现

      2. asyncio,提供了完善的异步IO支持(asyncawait,针对coroutine的新语法)

      3. aiohttp,基于asyncio实现的HTTP框架
  • 相关阅读:
    树莓派学习笔记(三)——远程调试树莓派程序(Pycharm实现)
    树莓派学习笔记(一)——系统安装与远程显示
    记 laravel 排除CSRF验证
    thinkPHP5 生成微信小程序二维码 保存在本地
    微信小程序 rich-text 富文本中图片自适应
    Laravel 中自定义 手机号和身份证号验证
    laravel Excel 导入
    微信小程序之页面跳转(tabbar跳转及页面内跳转)
    关于MySQL事务和存储引擎常见FAQ
    微信小程序点击保存图片到本地相册——踩坑
  • 原文地址:https://www.cnblogs.com/GO-NO-1/p/6500912.html
Copyright © 2011-2022 走看看