代码改变世界

随笔分类 -  python

利用yield将异步回调同步化

2017-02-14 15:33 by 放作夥, 2601 阅读, 收藏,
摘要: 《python cookbook》上这段代码利用yield将异步回调同步化,这跟tornado的@gen.coroutine用法好像,感觉tornado的gen.coroutine装饰器背后可能就是这个原理,将被装饰函数的yield逐步遍历并等待被装饰函数下次yield出,若收到生成器结束的异常,则 阅读全文

python weakref弱引用

2017-02-08 15:30 by 放作夥, 2363 阅读, 收藏,
摘要: weakref号称可以解决循环引用gc和创建缓存。我困惑的是python的gc到底能不能解决循环引用的问题,有资料说python的gc是有别的辅助机制可以解决循环依赖,但是我又看见这样的代码。 这段代码试图说明python的gc并不那么智能 阅读全文

python中poolable queue

2017-01-24 15:58 by 放作夥, 380 阅读, 收藏,
摘要: 在python cookbook中看见这么一段代码 import queue import socket import os class PollableQueue(queue.Queue): def __init__(self): super().__init__() Create a pair 阅读全文

python继承__init__函数

2016-11-09 20:16 by 放作夥, 1899 阅读, 收藏,
摘要: Python子类会把父类的构造函数也继承,特意记录一下,跟java不一样,java如果子类不写构造函数,会生成一个默认的无参构造函数,隐式调用父类的无参构造函数 【1】Python中如果子类有自己的构造函数,不会自动调用父类的构造函数,如果需要用到父类的构造函数,则需要在子类的构造函数中显式的调用。 阅读全文

scp协议分析

2016-05-07 16:35 by 放作夥, 5495 阅读, 收藏,
摘要: 为了学习一下scp协议,我找了一个开源的scp实现(python实现)来看。这里记录我的学习过程 1、主模块 scp内置了两个参数 t 和 f ,这两个参数是隐藏的,不会被用户显式提供,那么谁提供这个参数呢,两个scp进程之间传输数据时,远端机器上的scp进程被本地scp进程启动起来时提供上去。 需 阅读全文

更加pythonic的写法

2016-03-01 16:23 by 放作夥, 277 阅读, 收藏,
摘要: 我会陆陆续续的做些笔记,其实有很多不错的技巧,但我只记录特别特别眼前一亮的。 1.交换变量 a,b=b,a 2.for...else...的else部分用来处理没有从for循环中断的情况。有了它,我们不用设置状态变量来检查是否for循环有break出来,简单方便。 改进前: find = False 阅读全文

Python闭包

2015-12-28 10:51 by 放作夥, 178 阅读, 收藏,
摘要: 闭包是函数式编程领域里的概念,函数式编程里号称它的函数是无状态的,无毒无副作用,可是我觉得闭包就是函数式编程的打脸之作,闭包让无状态的函数式编程重新有了状态。维持状态是面向对象编程最擅长,我觉得要打OOP的脸,函数式编程就不应该支持闭包,这样函数式编程才有资格继续在OOP届吹逼。补充一下,闭包简单的... 阅读全文

WSGI是什么意思

2015-12-18 12:16 by 放作夥, 288 阅读, 收藏,
摘要: 学习python过程中遇到WSGI,查阅了一下,个人理解是为了解耦web传输和web业务逻辑,是一种协议一样的东西。引用一幅图吧:还听说跟CGI原理很像,从请求入口处填上一些环境变量交给逻辑app去处理了,还有听说java有个Servlet很像它。 阅读全文

C程序员对Python的疑惑

2015-12-12 13:50 by 放作夥, 299 阅读, 收藏,
摘要: 1.if/else,try,while不产生新的作用域与java,c不同的是python只有class和module才会产生新的变量作用域,比如下面的代码会让java,c 程序员很不解>>if a is none:>> x=3>>print x2.为什么python的变量看起来像没有类型限制一样,... 阅读全文

python变量和作用域

2015-06-14 14:58 by 放作夥, 354 阅读, 收藏,
摘要: 1、作用域介绍python中的作用域分4种情况: L:local,局部作用域,即函数中定义的变量;E:enclosing,嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部作用域,但不是全局的;G:globa,全局变量,就是模块级别定义的变量; B:built-in,系统固定模块里面的变量,比... 阅读全文

函数式编程范式

2015-03-14 13:18 by 放作夥, 356 阅读, 收藏,
摘要: 各种语言和范式的出现都是为了应对某一特定类别的问题。函数式编程的杀手锏正是应对了当今世界上日益增长的并行性编程和元数据编程趋势。函数式编程语言有个特点是没有变量,python部分支持函数式编程范式,但不是纯函数式语言。 什么是函数式编程?简单的回答:一切都是数学函数。函数式编程语言里也可以有对... 阅读全文