
Python
文章平均质量分 50
Python
爱拍凯特
热爱开源,热爱新技术,热爱黑科技。
展开
-
Python装饰器、生成器、迭代器、魔术方法总结
1、装饰器和上下文管理2、生成器、迭代器和可迭代对象总结一:1、上下文管理器是符合上下文管理协议的对象,主要是定义了__exit__()和__enter__()方法。装饰器是一个特殊的上下文管理器,两者都是包装其他代码块的工具,区别在于,装饰器包装的是定义的代码块,而上下文管理器可以包装任意的代码块。也就是说装饰器包装的代码是有要求的,也就是一个定义代码块,如定义一个函数。而上下文管理器则没有这种要求,你可以之有一个print都可以。2、生成器的核心是迭代器,或者说生成器是一种迭代器。因原创 2020-06-14 13:38:12 · 300 阅读 · 0 评论 -
Tornado的高性能服务器开发常用方法
高性能源于Tornado基于Epoll(unix为kqueue)的异步网络IO。因为tornado的单线程机制,一不小心就容易写出阻塞服务[block]的代码。不但没有性能提高,反而会让性能急剧下降。因此,探索tornado的异步使用方式很有必要。简而言之,Tornado的异步包括两个方面,异步服务端和异步客户端。无论服务端和客户端,具体的异步模型又可以分为回调[callback]和协程[co...原创 2020-03-01 14:05:19 · 897 阅读 · 0 评论 -
Tornado 做为服务端response json数据中文显示异常
最近在开发一个车牌识别的服务端的时候,后端返回的json中的中文在调用方显示总是以unicode的格式显示,而不是中文。折腾了一天多时间,后来在一个博客中发现了相同的问题,特此记录。背景:服务端返回的数据print之后如下:{'message': 'ok', 'code': 0, 'result': {'car.jpg': [{'value': '京ABXXX', 'pred': 0....原创 2020-02-13 12:35:00 · 2454 阅读 · 1 评论 -
遇到的算法题--03(N条电线)
我们有N条电线,每个电线两端是不同规格的接口(a/b/c/d....),同一根电线两端的接口规格可能是不同的,只有相同规格的接口才能把两根电线连接在一起,设计一个程序,判断所有这些电线是否能合并为一根长电线。输入:N行,每行是两个字符串,表示电线的规格,如a aa bb c输出:是否能拼接为一根电线解题思路:采用数学思想,找规律。已知N根线,则共有2N个端点,...原创 2019-07-01 11:57:46 · 419 阅读 · 2 评论 -
python 中 with 的用法和原理
在写代码过程中,我们一般会有这样的问题,如文件描述符打开,关闭,锁的加锁,解锁,一旦缺少任何一环都会对系统造成严重影响,如果不能正确关闭描述符,就会导致可用的描述符数量急剧下降,如果不能正常解锁,会导致严重的死锁问题。python中存在一个用法:with,可以帮助我们自动的进行资源的获取和释放,从而避免上述问题。with的原理:with在执行的时候,会执行紧随其后的代码,并调用该对象的...原创 2019-05-09 14:29:01 · 6645 阅读 · 0 评论 -
python学习笔记--可迭代对象和迭代器的理解
首先,我们从简单的容器开始。容器:是一种把多个元素组织在一起的数据结构,其中的元素可以迭代获取,可以用in,not in,来判断是否存在容器中,这类数据结构的所有元素是存储在内存中的,像迭代器,生成器的数据元素只有一部分存在内存中。python中常见的容器:list/dequeset/fronzensetsdict/defaultdict/Ordereddict/Count原创 2018-01-05 21:47:15 · 1028 阅读 · 0 评论 -
python学习笔记--lambda
之前用过lambda,但是虽然用过却并没有仔细的想过lambda,今天就简单的说说lambda。还是遵循我固有的三板斧:what,how,why。1、lambda是什么,以及怎么用:lambda是一个匿名函数,用法如下。a = lambda x:x+1上式等价与:def a(x): reurn x+1下面的式子大家一看...原创 2017-09-17 23:14:40 · 329 阅读 · 0 评论 -
python学习笔记--闭包
一个函数A和一个函数B,其中B函数位于A函数体内部,同时B函数体内调用了B函数之外,A函数之内的其他变量x(包括A中传递过来的参数),此时,x称为B函数的环境变量,B函数和变量x就构成了一个闭包。而函数B是需要返回的,也就是返回函数B,其中在返回的时候,对A参数x的调用也包括在了里面,(有点封闭包含的意思,可能因此叫闭包)。此时A称为闭包函数eg:#outer functiondef原创 2017-06-15 20:44:01 · 357 阅读 · 0 评论 -
Python 学习笔记--GIL
1、python 全局翻译锁(GIL Global Interpreter Lock)为了实现在多核环境下的运行时数据的一致性,Python采用加锁的思想来实现这种同步和一致性,这把锁就是GIL。这造成了一定量的性能损失,使用锁的原因是因为Python解释器内部是线程不安全的。另外一点,首先需要明确的一点是 GIL 并不是Python的特性,它是在实现Python解析器(CPython)时...原创 2017-04-19 00:13:44 · 340 阅读 · 0 评论 -
GO学习笔记---GO中的Interface详解
在学习Go语言的过程中,有几个核心的概念不容易理解,如函数、interface、map、channel、gorotine、struct、等。今天主要总结一下GO中的interface。学习过C++的同学都知道C++有面向对象编程,有类,有继承,多态机制,可以减少我们代码的编写量,然后实现功能的复用,但是在go中没有面向对象的概念,但是通过interface也能实现面向对象中的多态机制。首先...原创 2019-07-13 23:53:30 · 562 阅读 · 0 评论 -
Go学习笔记---Go中有关环境变量的操作
今天在阅读Go开源分布式 key-value 存储软件etcd的时候,在main函数中遇到了一个有关于系统平台判断的代码如下:func checkSupportArch() { // TODO qualify arm64 if runtime.GOARCH == "amd64" || runtime.GOARCH == "ppc64le" { return } // unsupp...原创 2019-07-13 21:50:49 · 1116 阅读 · 0 评论