随笔分类 -  Python

摘要:英文原文地址:https://greenlet.readthedocs.io/en/latest/中文翻译转载地址:https://zhuanlan.zhihu.com/p/25188731 背景 greenlet包是Stackless的衍生产品,它是一个支持微线程(叫tasklets)的CPyth 阅读全文
posted @ 2018-02-23 15:45 BGPY 阅读(238) 评论(0) 推荐(0)
摘要:对于Python垃圾回收机制主要有三个,首先是使用引用计数来跟踪和回收垃圾,为了解决循环 引用问题,就采用标记-清除的方法,标记-清除的方法所带来的额外操作实际上与系统中总的内存 块的总数是相关的,当需要回收的内存块越多,垃圾检查带来的额外操作就越多,为了提高垃圾收集 的效率,采用“空间换时间的策略 阅读全文
posted @ 2018-02-22 11:08 BGPY 阅读(439) 评论(0) 推荐(0)
摘要:首先python2中有range函数和xrange函数,python3中只有range函数。 Python2中 range和xrange: range函数可用来创建一个整数列表,即list。 例如: >>>range(10) # 从 0 开始到 10 [0, 1, 2, 3, 4, 5, 6, 7, 阅读全文
posted @ 2018-02-10 21:34 BGPY 阅读(236) 评论(0) 推荐(0)
摘要:装饰器本质上是一个 Python 函数或类,它可以让其他函数或类在不需要做任何代码修改的前提下增加额外功能,装饰器的返回值也是一个函数/类对象。它经常用于有切面需求的场景,比如:插入日志、性能测试、事务处理、缓存、权限校验等场景,装饰器是解决这类问题的绝佳设计。有了装饰器,我们就可以抽离出大量与函数 阅读全文
posted @ 2018-01-21 17:00 BGPY 阅读(142) 评论(0) 推荐(0)
摘要:Python多进程 1.Process类 Process类是用来创建进程的class multiprocessing.Process(group=None, target=None, name=None, args=(), kwargs={}, *, daemon=None)其中group应该永远为 阅读全文
posted @ 2018-01-12 22:52 BGPY 阅读(265) 评论(0) 推荐(0)
摘要:可迭代对象和迭代器 1.首先可以用于for循环的对象统称为可迭代对象(Interable),像list dict str都是可迭代对象。可以被next()函数调用并不断返回下一个值的对象成为迭代器(Interable)。看一下函数的实现: 可以看到Iterable有一个__iter__函数,Iter 阅读全文
posted @ 2018-01-05 23:38 BGPY 阅读(375) 评论(0) 推荐(0)
摘要:Python中使用@staticmethod这个装饰器让方法变为静态方法 一:定义 @staticmethod: 首先它是一个装饰器,被装饰的方法不需要隐含的参数,对象和对象的实例都可以调用静态方法 类方法是通过@classmethod进行装饰,被装饰的方法第一个隐含参数是cls,同样对象和对象的实 阅读全文
posted @ 2017-09-28 22:31 BGPY 阅读(403) 评论(0) 推荐(0)
摘要:Python事件机制 事件机制:这是线程间最简单的通信机制:一个线程发送事件,其他线程等待事件事件机制使用一个内部的标志,使用set方法进行使能为True,使用clear清除为falsewait方法将会阻塞当前线程知道标记为True 结果: 阅读全文
posted @ 2017-09-24 14:42 BGPY 阅读(3278) 评论(0) 推荐(0)
摘要:本节主要举一个简单的线程间通信的例子,利用线程安全的数据结构queue.Queue保存线程间通信的内容, 阅读全文
posted @ 2017-09-23 22:37 BGPY 阅读(474) 评论(0) 推荐(0)
摘要:Python多为线程编程提供了两个简单明了的模块:thread和threading,Python3中已经不存thread模块,已经被改名为_thread,实际优先使用 threading模块。 1.Python创建线程的两种方法: ①:创建一个threading.Thread对象,在其初始化函数中将 阅读全文
posted @ 2017-09-23 21:38 BGPY 阅读(1953) 评论(0) 推荐(1)
摘要:按照字典值的大小对字典进行排序 1. 利用zip函数将key值和value值位置进行颠倒,再使用sorted进行排序 例如: 1 2 3 4 5 6 7 8 from random import randint d= {k:randint(0,20) for k in 'abcdefg'} #{'f 阅读全文
posted @ 2017-09-10 16:27 BGPY 阅读(1441) 评论(0) 推荐(0)