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框架
  • 相关阅读:
    实现一个聊天功能的对话框
    一些关于搭建服务器的方法
    JavaScript全局变量和局部变量的区别
    GIT常用命令
    Android 去除最上面应用名称及图标
    Fragment的隐藏与显示
    多线程断点续传及下载
    android 断点下载---XUtils
    Android判断网路是否畅通加权限
    Android_按两次返回键退出程序和长按返回键退出程序
  • 原文地址:https://www.cnblogs.com/GO-NO-1/p/6500912.html
Copyright © 2011-2022 走看看