Python黑魔法】的更多相关文章

Python 黑魔法---描述器(descriptor) Python黑魔法,前面已经介绍了两个魔法,装饰器和迭代器,通常还有个生成器.生成器固然也是一个很优雅的魔法.生成器更像是函数的行为.而连接类行为和函数行为的时候,还有一个描述器魔法,也称之为描述符. 我们不止一次说过,Python的优雅,很大程度在于如何设计成优雅的API.黑魔法则是一大利器.或者说Python的优雅很大程度上是建立在这些魔法巧技基础上. 何谓描述器 当定义迭代器的时候,描述是实现迭代协议的对象,即实现__iter__方…
转自:http://www.jianshu.com/p/b5e347b3a17c?from=timeline Python黑魔法 --- 异步IO( asyncio) 协程 作者 人世间 关注 2017.01.17 11:12* 字数 3396 阅读 2856评论 9喜欢 33 python asyncio 网络模型有很多中,为了实现高并发也有很多方案,多线程,多进程.无论多线程和多进程,IO的调度更多取决于系统,而协程的方式,调度来自用户,用户可以在函数中yield一个状态.使用协程可以实现高…
所谓上下文 计算机上下文(Context)对于我而言,一直是一个很抽象的名词.就像形而上一样,经常听见有人说,但是无法和现实认知世界相结合. 最直观的上下文,莫过于小学的语文课,经常会问联系上下文,推测...,回答...,表明作者....文章里的上下文比较好懂,无非就是前与后. 直到了解了计算机的执行状态,程式的运行,才稍微对计算机的上下文(context)有了一定的认识,多半还是只可意会,不可言传.本文所讨论的上下文,简而言之,就是程式所执行的环境状态,或者说程式运行的情景. 关于上下文的定义…
Python 黑魔法(持续收录) zip 对矩阵进行转置 a = [[1, 2, 3], [4, 5, 6]] print(list(map(list, zip(*a)))) zip 反转字典 a = dict(a=1, b=2, c=3) print(dict(zip(a.values(), a.keys()))) 将list分成n份 print(list(zip(*(iter([1, 2, 3, 4, 5, 6]),) * 3))) # [(1, 2, 3), (4, 5, 6)] all…
最近了解了一下python的metaclass,在学习的过程中,把自己对metaclass的理解写出来和大家分享. 首先, metaclass 中文叫元类,这个元类怎么来理解呢.我们知道,在Python中,一切都是对象.我们定义一个类,然后实例化,得到了一个类的实例对象.我们可以把类理解成创建实例对象的模板.其实,这个模板,也就是类本身,也是一个对象.既然类也是对象,那么我们就可以对他进行很多操作.比如,把类作为函数的参数,创建类的引用等等.那么创建类的模板,就是元类. 在Python中,我们很…
awesome python 中文大全 Fabric , pip, virtualenv 内建函数好文 awesome python 奇技淫巧 一句话求阶乘 from functools import reduce reduce(lambda x, y: x * y, range(1,int(input('number:'))+1), 1) # 递归 def factorial(n): return 1 if n<=1 else n*factorial(n-1) factorial = lamb…
很多pythonic的代码都会用到内置方法,根据自己的经验,罗列一下自己知道的内置方法. __getitem__ __setitem__ __delitem__ 这三个方法是字典类的内置方法,分别对应于查找.设置.删除操作,以一个简单的例子说明: class A(dict): def __getitem__(self, key): print '__getitem__' return super(A, self).__getitem__(key) def __setitem__(self, ke…
python asyncio 网络模型有很多中,为了实现高并发也有很多方案,多线程,多进程.无论多线程和多进程,IO的调度更多取决于系统,而协程的方式,调度来自用户,用户可以在函数中yield一个状态.使用协程可以实现高效的并发任务.Python的在3.4中引入了协程的概念,可是这个还是以生成器对象为基础,3.5则确定了协程的语法.下面将简单介绍asyncio的使用.实现协程的不仅仅是asyncio,tornado和gevent都实现了类似的功能. event_loop 事件循环:程序开启一个无…
Python 高效编程小技巧 个人博客:临风|刀背藏身 Python 一直被我拿来写算法题,小程序,因为他使用起来太方便了,各种niubi闪闪的技能点也在写算法的过程中逐渐被挖掘到,感谢万能的谷哥度娘SOF以及各大博客网站,在这里整理一二. 几句废话: 因为我是懒癌晚期,最不喜欢在文章里发图片,因为Mweb写作或者是马克飞象写作,可以直接拖图进来,但是上传博客的话,就需要考虑是使用服务器上的媒体库,还是放七牛,放七牛上还得用它的命令行工具,或者是Web端操作,想想都好麻烦.所以,本地一直存放着几…
Python 在程序并行化方面多少有些声名狼藉.撇开技术上的问题,例如线程的实现和 GIL,我觉得错误的教学指导才是主要问题.常见的经典 Python 多线程.多进程教程多显得偏“重”.而且往往隔靴搔痒,没有深入探讨日常工作中最有用的内容. 传统的例子 简单搜索下“Python 多线程教程”,不难发现几乎所有的教程都给出涉及类和队列的例子: #Example.py ''' Standard Producer/Consumer Threading Pattern ''' import time i…