随笔分类 -  python

1
摘要:Python的GC模块主要运用了“引用计数”(reference counting)来跟踪和回收垃圾。在引用计数的基础上,还可以通过“标记-清除”(mark and sweep)解决容器对象可能产生的循环引用的问题。通过“分代回收”(generation collection)以空间换取时间来进一步 阅读全文
posted @ 2017-03-21 22:40 webber_liu 阅读(558) 评论(0) 推荐(0) 编辑
摘要:近期为了面试想要了解下python的运行原理方面的东西,奈何关于python没有找到一本类似于深入理解Java虚拟机方面的书籍,找到了一本《python源码剖析》电子书,但是觉得相对来说最近还是不打算用大布头时间研究这本书,只能先找来几篇相关的博客来阅读,记录如下: 一、过程概述 1、python先 阅读全文
posted @ 2017-03-21 22:23 webber_liu 阅读(18852) 评论(2) 推荐(1) 编辑
摘要:最近的物联网智能网关(树莓派)项目中遇到这样一个问题:要从多个底层串口读取发来的数据,并且做出相应的处理,对于每个串口的数据的读取我能想到的可以采用两种方式: 一种是采用轮询串口的方式,例如每3s向每个串口的buffer区去取一次数据,但是这样可能会有缓冲区溢出的可能,同时,数据的同步也可能会出现一 阅读全文
posted @ 2017-01-15 19:29 webber_liu 阅读(2118) 评论(0) 推荐(0) 编辑
摘要:在之前的树莓派网关项目中遇到了这样一个问题,由于要把网关写的Server持续运行,尤其是要加电自动开启。发现ssh登录开启服务程序之后,当把pty退出时Server端自动断开了,这里想到的APUE中第九章的内容,回顾了下关于会话首进程,进程组,控制终端的概念,所以我们需要把自己写的Server端变为 阅读全文
posted @ 2017-01-09 14:16 webber_liu 阅读(4748) 评论(0) 推荐(0) 编辑
摘要:multiprocessing并非是python的一个模块,而是python中多进程管理的一个包,在学习的时候可以与threading这个模块作类比,正如我们在上一篇转载的文章中所提,python的多线程并不能做到真正的并行处理,只能完成相对的并发处理,那么我们需要的就是python的多进程来完成并 阅读全文
posted @ 2016-12-24 14:45 webber_liu 阅读(14414) 评论(0) 推荐(0) 编辑
摘要:经常我们会听到老手说:“Python下多线程是鸡肋,推荐使用多进程!”,但是为什么这么说呢? 要知其然,更要知其所以然。所以有了下面的深入研究: 首先强调背景: 1、GIL是什么?GIL的全称是Global Interpreter Lock(全局解释器锁),来源是python设计之初的考虑,为了数据 阅读全文
posted @ 2016-12-21 22:23 webber_liu 阅读(1951) 评论(0) 推荐(0) 编辑
摘要:模块解读: 浅复制: x = copy.copy(y)深复制: x = copy.deepcopy(y)(注:模块特有的异常,copy.Error) 深copy与浅copy的差别主要体现在当有混合对象时,即在一个对象中包含其他子对象,比如在一个字典中的一个value是一个列表,这时:浅copy,没有 阅读全文
posted @ 2016-12-21 22:04 webber_liu 阅读(262) 评论(0) 推荐(0) 编辑
摘要:最近老板给提出一个需要,项目需求大致如下: 1、用树莓派作为网关,底层接多个ZigBee传感节点,网关把ZigBee传感节点采集到的信息通过串口接收汇总,并且发送给上层的HTTP Server; 2、要有数据的反向控制通道,即网关与Server间要保持长连接,采用websocket实现,以此实现给Z 阅读全文
posted @ 2016-12-12 18:53 webber_liu 阅读(1934) 评论(0) 推荐(0) 编辑
摘要:1 class Group(models.Model): 2 3 name = models.CharField(_('name'), max_length=80, unique=True) 4 permissions = models.ManyToManyField( 5 Permission, 阅读全文
posted @ 2016-11-25 13:08 webber_liu 阅读(9267) 评论(1) 推荐(1) 编辑
摘要:一、list的基本实现技术 在数据结构中,如果用python实现线性表,无疑要提到list,list是一种元素个数可变的线性表(而tuple是不变的表,不支持改变其内部状态的任何操作,其他与list性质类似),采用分离式技术实现的动态顺序表,表中元素保存在一块连续存储区内。实现约束有如下两点: 1、 阅读全文
posted @ 2016-11-13 14:00 webber_liu 阅读(473) 评论(0) 推荐(0) 编辑
摘要:Queue模块最常与threading模块一起构成生产-消费者模型,提供了一个适用于多线程编程的先进先出的数据结构,即队列。 该模块源码中包含5个类: 其中,Empty和Full是两个异常类,当队列的Queue.get(block=0)或者调用get_nowait()时,如果队列为空,则抛Empty 阅读全文
posted @ 2016-10-18 10:40 webber_liu 阅读(436) 评论(0) 推荐(0) 编辑
摘要:现在把关于多线程的能想到的需要注意的点记录一下: 关于threading模块: 1、关于 传参问题 如果调用的子线程函数需要传参,要在参数后面加一个“,”否则会抛参数异常的错误。 如下: 2、关于join()阻塞 join()方法一旦被调用,这个线程就会被阻塞住,等其他线程执行完才执行自身。当我们在 阅读全文
posted @ 2016-10-17 21:49 webber_liu 阅读(3756) 评论(0) 推荐(0) 编辑
摘要:装饰器实际上就是函数,可以在装饰器中置入通用功能的代码来降低程序的复杂度。 功能: >引入日志 >增加计时逻辑来检测性能 >给函数加入事务的能力 例子1、简单装饰器 例子2、含返回值的装饰器 例子3、复杂装饰器 这里是含参数的装饰器,在装饰器中调用before方法和after方法,完成对List方法 阅读全文
posted @ 2016-10-08 10:27 webber_liu 阅读(388) 评论(0) 推荐(0) 编辑
摘要:题外话 之前在看Unix环境高级编程的时候,看完高级IO那一章,感觉自己萌萌哒,0.0 ,有点囫囵吞枣的感觉,之后翻了几篇博客,从纯系统的角度理解,稍微有了点概念,以这两篇为例,可以以后参考: http://www.cnblogs.com/Anker/p/3265058.html https://s 阅读全文
posted @ 2016-09-14 10:11 webber_liu 阅读(593) 评论(0) 推荐(1) 编辑
摘要:1、编辑(Editing ) Ctrl + Space 基本的代码完成(类、方法、属性)Ctrl + Alt + Space 快速导入任意类Ctrl + Shift + Enter 语句完成Ctrl + P 参数信息(在方法中调用参数)Ctrl + Q 快速查看文档Shift + F1 外部文档Ct 阅读全文
posted @ 2016-09-07 11:16 webber_liu 阅读(365) 评论(0) 推荐(0) 编辑
摘要:五、Mix-In混合类 昨天介绍了BaseServer和BaseRequestHandler两个基类,它们只用与派生,所以贴了它们派生的子类代码。 今天介绍两个混合类,ForkingMix-In 和 ThreadingMix-In,两者分别实现了核心的进程化和线程化的功能,如前面简介中所提,作为混合 阅读全文
posted @ 2016-09-06 14:29 webber_liu 阅读(455) 评论(0) 推荐(1) 编辑
摘要:一、简介(翻译) 通用socket server 类 该模块尽力从各种不同的方面定义server: 对于socket-based servers: -- address family: - AF_INET{,6}: IP socket (default) - AF_UNIX: Unix domain 阅读全文
posted @ 2016-09-05 17:13 webber_liu 阅读(2360) 评论(0) 推荐(1) 编辑
摘要:反射的简单含义: 通过方法名得到未知的方法(方法名不确定),实现调用。 即:当我们需要执行对象的某个方法,或是需要对对象的某个字段赋值时,而方法名或是字段名在编码代码时并不能确定,需要通过参数传递字符串的形式输入。下面是一个小例子: 输出结果如下: > test is not exist!!! pl 阅读全文
posted @ 2016-08-02 16:21 webber_liu 阅读(154) 评论(0) 推荐(0) 编辑
摘要:以下是八大排序的python实现,供以后参考,日后扩展 一、插入排序 二、希尔排序 三、冒泡排序 四、直接选择排序 五、快速排序 六、堆排序 七、归并排序 八、基数排序 下面附一下各个排序算法的时间复杂度以及稳定性比较: 排序方法 平均情况 最好情况 最坏情况 辅助空间 稳定性 冒泡排序 O(n^2 阅读全文
posted @ 2016-04-12 21:43 webber_liu 阅读(238) 评论(0) 推荐(0) 编辑
摘要:首先,说明一下多线程的应用场景:当python处理多个任务时,这些任务本质是异步的,需要有多个并发事务,各个事务的运行顺序可以是不确定的、随机的、不可预测的。计算密集型的任务可以顺序执行分隔成的多个子任务,也可以用多线程的方式处理。但I/O密集型的任务就不好以单线程方式处理了,如果不用多线程,只能用 阅读全文
posted @ 2016-01-28 22:57 webber_liu 阅读(231) 评论(0) 推荐(0) 编辑

1
点击右上角即可分享
微信分享提示