随笔- 454
文章- 302
评论- 28
阅读-
65万
文章分类 - python
统计数列中元素的频度
摘要:from random import randint #找出出现次数最多的前3个 data = [randint(0,20) for _ in range(30)] print(data) d = dict.fromkeys(data,1) print(d) for x in data: d[x] += 1 dd = sorted([(v,k) for k,v in d.items(...
阅读全文
sorted排序
摘要:from random import randint # print(randint(-10,10)) # # l = [randint(-10,10) for i in range(10)] # # print( [x for x in l if x >= 0] ) # # print(list(filter(lambda x:x>=0,l))) mcase = {'a': 10, 'b'...
阅读全文
Future与Task
摘要:Tasks and coroutines 翻译的python官方文档 这个问题的恶心之处在于,如果你要理解coroutine,你应该理解future和task。而你如果想理解future和task你应该先理解coroutine。所以在第一遍阅读官方文档的时候,感觉完全是在梦游。但读到第二遍和第三遍的
阅读全文
partial函数 偏函数
摘要:一个函数可以有多个参数,而在有的情况下有的参数先得到,有的参数需要在后面的情景中才能知道,python 给我们提供了partial函数用于携带部分参数生成一个新函数。 下面一个列子是用partial来生成了一个装饰器,用于修改函数的__doc__为另一个函数的
阅读全文
Python 的异步 IO:Asyncio
摘要:一直对asyncio这个库比较感兴趣,毕竟这是官网也非常推荐的一个实现高并发的一个模块,python也是在python 3.4中引入了协程的概念。也通过这次整理更加深刻理解这个模块的使用 asyncio 是干什么的? 异步网络操作 并发 协程 python3.0时代,标准库里的异步网络模块:sele
阅读全文
Python namedtuple
摘要:mqslllduoduo Python元组的升级版本 -- namedtuple(具名元组) 因为元组的局限性:不能为元组内部的数据进行命名,所以往往我们并不知道一个元组所要表达的意义,所以在这里引入了 collections.namedtuple 这个工厂函数,来构造一个带字段名的元组。具名元组的
阅读全文
协程之生成器yield from
摘要:yield from 你知道做什么那些事情吗? 帮我们迭代: 让协程返回值 yield from的主要功能是打开双向通道,把最外层的调用方法与最内层的子生成器连接起来,这样二者可以直接发送和产出值,还可以直接传入异常,而不用在位于中间的协程中添加大量处理异常的代码,有了这个机构, 协程可以通过以前不
阅读全文
协程之生成器
摘要:执行结果: 终止协程和异常处理: close: 上述代码中,注释了其他yield ,再次执行就不会有异常了 或者捕获异常,并抛出StopIteration异常(表示已经运行到结尾了),这样也不会有报错 总结close: throw: 向生成器抛一个异常: 改进一下(生成器自己捕获异常): 总结: t
阅读全文
字符串格式化
摘要:字符串格式化 Python的字符串格式化有两种方式: 百分号方式、format方式 百分号的方式相对来说比较老,而format方式则是比较先进的方式,企图替换古老的方式,目前两者并存。[PEP-3101] This PEP proposes a new system for built-in str
阅读全文
python并发编程之IO模型
摘要:用协程实现的IO阻塞自动切换,那么协程又是怎么实现的,在原理是是怎么实现的。如何去实现事件驱动的情况下IO的自动阻塞的切换,这个学名叫什么呢? => IO多路复用 比如socketserver,多个客户端连接,单线程下实现并发效果,就叫多路复用。 同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,
阅读全文
多进程
摘要:在学习多进程之前先看下面一段代码 执行结果是: 子进程会将父进程所有数据原样拷贝一份到子进程当中(fork之后的代码),每一个进程有一套自己完全隔离的数据 进程间的通讯: 共享内存:
阅读全文
多线程
摘要:开启join后,程序就会hang住(阻塞),不会继续往下执行 上述代码创建了10个“前台”线程,然后控制器就交给了CPU,CPU根据指定算法进行调度,分片执行指令。 更多方法: start 线程准备就绪,等待CPU调度 setName 为线程设置名称 getName 获取线程名称 setDaemon
阅读全文
生成器
摘要:#生成器函数,函数里只要有yield关键字 def gen_func(): yield 1 yield 2 yield 3 def fib(index): if index <= 2: return 1 else: return fib(index-1) + fib(index-2) def fib2(index): ...
阅读全文
python Iterable和Iterator
摘要:判断是不是可以迭代,用Iterable 判断是不是迭代器,用Iterator 所以, 凡是可以for循环的,都是Iterable 凡是可以next()的,都是Iterator 集合数据类型如list,truple,dict,str,都是Itrable不是Iterator,但可以通过iter()函数获
阅读全文
元类应用ORM实现
摘要:首先看下一个简单的例子 上述为属性描述符 执行后结果: bobby28<class '__main__.User.Meta'> 进一步改进代码: 执行结果: bobby28{'db_table': 'user'}{'age': <__main__.IntField object at 0x00000
阅读全文
元类
摘要:执行结果: <class '__main__.create_class.<locals>.User'> 执行结果: <__main__.User object at 0x00000000011BD898> 证明了类是type的实例,类也是对象 执行结果: in new in init 补充 先看一下
阅读全文
python属性描述符和属性查找过程
摘要:第一种情况: 输出: 30{}3029 print (user.__dict__) 是 {}呢? 原理如下: 如果user是某个类的实例,那么user.age(以及等价的getattr(user,’age’))
阅读全文
魔术方法 __getattr__ 和__getattribute__
摘要:#__getattr__, __getattribute__ #__getattr__ 就是在查找不到属性的时候调用 from datetime import date class User: def __init__(self,info={}): self.info = info def __getattr__(self, item): ret...
阅读全文
python 一个经典的参数错误
摘要:['bobby2', 'bobby3']['bobby'](['bobby'],)['bobby', 'bobby5'] # com2.staffs ['bobby', 'bobby5'] # com3.staffsTrue 、、、、、 com2.staffs和com3.staffs使用的同一个内存
阅读全文