
python
secretx
这个作者很懒,什么都没留下…
展开
-
手写LRU
手写LRU1.要求put / get 均是 O(1) 时间复杂度 超出容量自动删除最老数据2.用什么数据结构?任意查找要求 O(1),必然有哈希 时间需要有序,必然链表或者数组 由于删除需求,也要控制在O(1),数组淘汰 由于单链表删除节点,需要寻找前驱,并非 O(1),所以单链表淘汰 所以结论,哈希(key-->node) + 双链表,哈希存key维持映射关系,双链表维持时序以及val 3.进一步,链表的Node定义是? 初版 class Node(o原创 2020-06-30 17:06:15 · 344 阅读 · 0 评论 -
Python __new__, __init__, __metaclass__, __call__, __del__, __getattr__, __getattribute__
1.__new__先得明白一个道理:类,本身也是对象,类对象。这个同java,不难理解。实在不好想,就认为类对象存储在一个特殊地方,用虚拟机能理解的方式描述着类的字节码信息。这段文档,重点是:__new__用来创建类对象,实例化一个cls的类对象,表示这个类已经被加载了,解析了,现在可以拿着这个类创建普通实例了。如果类对象创建失败,则不会调用init方法,这个符合常理,类都没有,哪来的原创 2014-02-18 22:46:24 · 2239 阅读 · 0 评论 -
Python晦涩知识点
Python晦涩知识点1.is, id, ==is用来判断两个对象是不是同一个(同一个是指同一内存地址)>>> a = "sadasdasdasdas">>> b = a>>> a is b True # 很好理解,a, b指向同一个地址>>> a = 3>>> b = 3>>> a is bTrue # 原理同Java虚拟机常量池,Python也有原创 2015-02-27 16:25:15 · 3424 阅读 · 0 评论 -
Python functools详解
Python functools其他都比较简单,挑partial和wraps扯扯淡1.functools.partial官网文档说的真是不好理解,就当作是把一个函数,绑定部分或者全部参数后生成一个新版本的函数.还是很绕口,看例子from functools import partial>>> def add(a, b, kw="add"):... return a+b,原创 2016-06-17 15:42:16 · 5167 阅读 · 2 评论 -
python3.5协程
py2.x协程yield:py2.x的协程都是通过yield生成器来实现的,可以说是模拟的协程(不能跨堆栈),yield可以暂停函数执行,send通知函数继续往下执行,并提供给yield值,yield和send这种交互就构成了协程的基础.2.x系列理解yield就理解协程,参考http://blog.youkuaiyun.com/secretx/article/details/43969101原创 2016-11-17 12:42:41 · 2733 阅读 · 0 评论 -
CentOS安装python_ldap和PIL
1.安装django_auth_ldap需要依赖python_ldap, openldap CentOS要实现openLDAP必须先安装openldap, openldap-servers, openldap-clients三个包。第一个默认已经安装好了。 默认easy_install或者pip install很容易遇到这个错误/usr/include/sas原创 2013-12-13 23:29:50 · 6733 阅读 · 0 评论 -
正则表达式回溯
前几天有小伙伴来求救说页面上有一个 input 框,随着用户不断输入内容,页面响应会越来越慢直到完全失去响应。简单沟通过后得知具体场景是这样的:input 框中允许用户输入一连串逗号分隔的商品id在用户输入的过程中实时检测用户输入的内容是否符合规则,若不符合则给出提示信息小伙伴的解决方案也很直接:给 input 框绑定 keyup 事件。在 keyup 事件回调函数转载 2017-06-02 15:12:07 · 6696 阅读 · 0 评论 -
pyflame入门
安装yum install autoconf automakegit clone https://github.com/uber/pyflamecd pyflame/./autogen.sh./configure (MacOS出错Pyflame only supports Linux hosts)make && make install从https://github.c原创 2017-07-03 12:37:24 · 3951 阅读 · 0 评论 -
python内存管理--分层分配
1.分层分配层级 内容 字典,元祖,列表,字符串.....等等python对象 第3层 对象特有的内存分配器(比如聚合对象) 第2层 python对象分配器 第1层 python低级内存分配器 第0层 glibc的malloc 第-1层 操作系统虚拟的内存管理器 第-2层 物理内存 2.第0层 glibcl...原创 2018-07-18 16:56:41 · 1171 阅读 · 0 评论 -
python,js, java全局变量对比
1.javascript全局变量javascript 除了在函数里面用 var 声明的变量是局部变量,其他的都是全局变量。也就是说 函数外面 用不用 var 都是全局的,函数里面不用 var 也是全局的。此外,补充一个javascript 局部 变量作用域的例子:function ff() { for ( var i=0;i var a =原创 2013-10-11 14:59:49 · 1579 阅读 · 0 评论 -
windows下安装python环境以及Myeclipse安装pydev
1.个人一直觉得,windows上搭环境,是没啥好说的,鉴于很多新手迷惑,而且很多介绍pydev的文章都是瞎扯淡,写写这初级的文章。本文将介绍安装windows下python2.7和myeclipse8.5 pydev插件。2.准备工作: 下载Python2.7对应的windows包,如 python-2.7.3.msi . 不知道在哪里下,问百度,找官网。原创 2013-11-25 13:31:48 · 5638 阅读 · 0 评论 -
Python With语句
从Java转过来,习惯性try, catch, finally ,然后在 finally里面 释放各种资源。 Python 中不用自己finally释放资源。使用with上下文管理器。直接来代码,以Python 操作MySQL为例。#! -*-coding: utf-8 -*-import sysimport loggingimport MySQLdbfrom原创 2013-12-14 10:52:45 · 1737 阅读 · 0 评论 -
python高级数据结构
1. Collectionscollections模块包含了内建类型之外的一些有用的工具,例如Counter、defaultdict、OrderedDict、deque以及nametuple。其中Counter、deque以及defaultdict是最常用的类。1.1 Counter()如果你想统计一个单词在给定的序列中一共出现了多少次,诸如此类的操作就可以用到Counter。来看看如转载 2015-02-26 17:04:09 · 1176 阅读 · 0 评论 -
Python Memory Management
Even though some high level languages handle memory automatically doesn't mean that memory leaks are impossible. A leak in C or C++ is created when you allocate memory usingmalloc or new, and never转载 2015-10-12 14:34:44 · 745 阅读 · 0 评论 -
python晦涩知识点(二)
声明:一些很无聊的Python填空题,要是面试遇到,不要犹豫,一巴掌甩过去,然后说:“老子大老远跑过来面试,衣服都湿了,你就给我看这个?”开玩笑啦,反正很不爽就是了1.count和len>>> x, y = ???, ???>>> x.count(y) > len(x)True意思是说有没有合适的x,y使得y在x中出现的次数大于x的长度。一般来说,字符串长度为5,我们会认为最多5个原创 2016-01-21 16:54:46 · 1975 阅读 · 0 评论 -
深刻理解Python中的元类(metaclass)
类也是对象在理解元类之前,你需要先掌握Python中的类。Python中类的概念借鉴于Smalltalk,这显得有些奇特。在大多数编程语言中,类就是一组用来描述如何生成一个对象的代码段。在Python中这一点仍然成立:>>> class ObjectCreator(object):… pass…>>> my_object = ObjectCreator()>>> pri转载 2015-02-25 11:41:58 · 822 阅读 · 0 评论 -
你还敢说你会Python么?
你还敢说你会Python么?下面的代码,不运行代码,能说出运行结果吗?(lambda _, __, ___, ____, _____, ______, _______, ________: getattr( __import__(True.__class__.__name__[_] + [].__class__.__name__[__]), ()._转载 2014-12-29 14:04:46 · 1126 阅读 · 0 评论 -
centos6.4 升级python27引发的一系列问题以及解决方案
1. python内置format函数可以用来千分位格式化数值,如原创 2014-08-02 21:48:51 · 2710 阅读 · 0 评论 -
centos6.4安装Python web开发+生产环境
1.概述centos6.4安装Python,原创 2014-06-28 13:27:15 · 5624 阅读 · 0 评论 -
彻底解决 error: Unable to find vcvarsall.bat
1.windows上做Python开发,搭环境还真不比Linux容易。error: Unable to find vcvarsall.bat这个错误眼熟吧?凡是安装和操作系统底层密切相关的Python扩展,几乎都会遇到这个错误。比如PIL, Pillow(两个图形库),greenlet以及其基础之上的eventlet, gevent微线程并发库等等。当然了有一些情况下,你不必彻底解决它,你可以原创 2013-12-21 22:21:24 · 147669 阅读 · 68 评论 -
python greenlet实现机制
并发处理的技术背景并行化处理目前很受重视, 因为在很多时候,并行计算能大大的提高系统吞吐量,尤其在现在多核多处理器的时代, 所以像lisp这种古老的语言又被人们重新拿了起来, 函数式编程也越来越流行。 介绍一个python的并行处理的一个库: greenlet。 python 有一个非常有名的库叫做 stackless ,用来做并发处理, 主要是弄了个叫做tasklet的微线程的东西, 而gr转载 2015-02-26 17:11:30 · 1217 阅读 · 0 评论