python
文章平均质量分 60
OshynSong
百度云计算事业部研发工程师
展开
-
栅栏加解密python实现(支持密钥加密)
栅栏加解密是对较短字符串的一种处理方式,给定行数Row,根据字符串长度计算出列数Column,构成一个方阵。加密过程:就是按列依次从上到下对明文进行排列,然后按照密钥对各行进行打乱,最后以行顺序从左至右进行合并形成密文。解密过程:将上述过程进行逆推,对每一行根据密钥的顺序回复到原始的方阵的顺序,并从密文回复原始的方阵,最后按列的顺序从上到下从左至右解密。具体实现如下:所有实现封装到一个原创 2015-06-26 00:22:18 · 4327 阅读 · 1 评论 -
python可变参数调用函数问题
一直使用python实现一些想法,最近在使用python的过程中出现这样一个需求,定义了一个函数,第一个是普通参数,第二个是默认参数,后面还有可变参数,在最初学习python的时候,都知道非关键字可变参数和关键字可变参数两种,调用的方式也非常多种多样,这里主要提出一个比较隐含的问题,并将各种可能出现的情况进行了探讨。函数声明格式python虽然不支持函数重载,但是通过对函数参数的众多特性的支持基本弥原创 2015-06-08 00:40:30 · 2520 阅读 · 0 评论 -
python实现的websocket总结 —— wspy
之前曾有php版的websocket封装包,见Websocket——php实战,最近使用python做一些功能,需要用到对websocket的操作,因此,参照之前的实现,实现了这个python版本。源码见https://github.com/OshynSong/wspy。 整体实现起来,需要在建立socket监听端口,这需要用到socket标准库模块;之后,需要对对网络字节流进行操作,这个方面py原创 2015-07-08 23:32:35 · 4676 阅读 · 0 评论 -
全程模拟新浪微博登录(2015)
很久之前就了解过模拟登录的过程,最近对python用的比较多,想来练练手,就想实现一下新浪微博登录,首先随便一搜,网上有大量的前辈们都做过了,我也仔细看了一下,并且参考之后发现无法登录,而且还有很多细节没有说得太清楚。同时网上最新的也是很久之前的,对于最新的版本也有一些改动,因此将我接近两天时间的研究全过程记录一下。已有实现的简要过程网上已有实现可以见http://www.douban.com/no原创 2015-07-17 21:14:38 · 6903 阅读 · 2 评论 -
python的多线程基础设施
当我们在使用线程时,存在以下基本的多线程编程的概念:lock:多个线程访问临界资源时,为满足线程安全必须保证访问临界资源的代码同一时刻仅有一个线程执行。condition:传递消息的工具。线程中的条件,不满足条件就wait,获得条件就执行。wait():在条件实例中可用的wait()。notify() / notifyAll():在条件实例中可用的notify()通知一个其他等待的线程或其他原创 2016-07-19 00:02:01 · 458 阅读 · 0 评论 -
多线程抽象编程模型(Python版)
最近需要完成一个多线程下载的工具,对其中的多线程下载进行了一个抽象,可以对所有需要使用到多线程编程的地方统一使用这个模型来进行编写。 主要结构: 1、基于Queue标准库实现了一个类似线程池的工具,用户指定提交任务线程submitter与工作线程worker数目,所有线程分别设置为后台运行,提供等待线程运行完成的接口。 2、所有需要完成的任务抽象成task,提供单独的无参数调用方式,供work原创 2016-07-31 23:53:31 · 659 阅读 · 0 评论 -
事件循环开发框架eventloop(python版)
基于不同操作系统提供的多路IO通知机制,实现了一个可以针对文件描述符或者同类结构进行事件监听开发的小型框架,基于tornado的IOLoop实现。主要结构如下:LoopImpl类依据不同操作系统,按照epoll的接口实现了统一的loop注册方式:class LoopImpl(object): """ Base class for concrete implementations of eve原创 2016-11-23 21:11:11 · 5260 阅读 · 0 评论 -
基于python生成器封装的协程类
自从python2.2提供了yield关键字之后,python的生成器的很大一部分用途就是可以用来构建协同程序,能够将函数挂起返回中间值并能从上次离开的地方继续执行。python2.5的时候,这种生成器更加接近完全的协程,因为提供了将值和异常传递回到一个继续执行的函数中,当等待生成器的时候,生成器能返回控制。python提供的生成器设施:yield:能够将自己挂起,并提供一个返回值给等待方sen原创 2017-03-14 14:32:21 · 989 阅读 · 0 评论