- 博客(13)
- 收藏
- 关注
转载 liunx vi 命令详解
刚开始学着用linux,对vi命令不是很熟,在网上转接了一篇。vi编辑器是所有Unix及Linux系统下标准的编辑器,它的强大不逊色于任何最新的文本编辑器,这里只是简单地介绍一下它的用法和一小部分指 令。由于 对Unix及Linux系统的任何版本,vi编辑器是完全相同的,因此您可以在其他任何介绍vi的地方进一步了解它。Vi也是Linux中最基本的文本编 辑器,学会它后,您将在Linux的世界里...
2018-09-07 15:45:40
171
原创 python 字典update方法
Python 字典(Dictionary) update() 函数把字典dict2的键/值对更新到dict里update()方法语法:dict.update(dict2)dict2 -- 添加到指定字典dict里的字典。以下实例展示了 update()函数的使用方法:dict = {'Name': 'Zara', 'Age': 7}dict2 = {'Sex': 'fem...
2018-09-07 10:55:20
2832
原创 滑动窗口原理
TCP并不是每一个报文段都会回复ACK的,可能会对两个报文段发送一个ACK,也可能会对多个报文段发送1个ACK【累计ACK】,比如说发送方有1/2/3 3个报文段,先发送了2,3 两个报文段,但是接收方期望收到1报文段,这个时候2,3报文段就只能放在缓存中等待报文1的空洞被填上,如果报文1,一直不来,报文2/3也将被丢弃,如果报文1来了,那么会发送一个ACK对这3个报文进行一次确认。举一个例子...
2018-08-20 23:20:07
3485
原创 Flask中request,g,session的实现原理
最近一直在研究Flask,由于gfirefly中提供的Http接口使用了Flask,以前都是写一些游戏中简单的操作,最近涉及到Flask的方面比较多,所以就认真研究了下。对Flask的request context和app context略有心得,所以和小伙伴们分享一下Flask的request原理。在我们视图中要使用request时只需要from flask import request就可...
2018-08-20 21:37:36
349
原创 python动态添加方法及属性
Python是一门动态语言,动态语言的一个主要的特性就是你那个在运行时,添加属性以及方法。不同于静态语言(例如c,c++,java......)他们都是通过编译后在运行指定的编译后的文件。Python与他们最大的不同就是Python是动态的,代码的更改,无需重新编译即可启动。下面通过代码展示python动态添加方法及属性的实例:class Student(object): d...
2018-08-15 18:04:56
359
原创 python运算效率低,具体是什么原因呢
第一:python是动态语言 一个变量所指向对象的类型在运行时才确定,编译器做不了任何预测,也就无从优化。举一个简单的例子: r = a + b。 a和b相加,但a和b的类型在运行时才知道,对于加法操作,不同的类型有不同的处理,所以每次运行的时候都会去判断a和b的类型,然后执行对应的操作。而在静态语言如C++中,编译的时候就确定了运行时的代码。 另外一个例子是属性查找,关于具体的查...
2018-08-15 17:43:12
676
原创 关于浅拷贝和深拷贝
为什么要用拷贝,在修改(处理)a数据的时候,不要影响到原有的b数据,所以要用到拷贝,拷贝的是引用,不是数据 要理解拷贝首先要对赋值操作有以下认识: 1.赋值是将一个对象的地址赋值给一个变量,让变量指向该地址 2.修改不可变对象(str,tuple,int)需要开辟新的空间 3.修改可变对象(list, dict, set)不需要开辟新的空间 4.对象,被分配的一块内存,储存其所代表的值 ...
2018-07-12 22:29:12
131
原创 生成器、迭代器、容器和可迭代对象的区别与特征
容器(container):容器是一种把多个元素组织在一起的数据结构,容器中的元素可以逐个的迭代获取,可以用in,not in关键字判断元素是否包含在容器中,常见的容器有list,set,dict,tuple,str可以把容器看做是一个盒子,一栋房子。 可迭代对象:可迭代对象内部实现了__iter__方法,调用该方法返回一个迭代器对象,迭代器内部保持一个状态,该状态用于记录当前迭代所在的位置,...
2018-07-12 22:25:09
761
转载 事务的四种隔离级别
数据库事务的隔离级别有4种,由低到高分别为Read uncommitted 、Read committed 、Repeatable read 、Serializable 。而且,在事务的并发操作中可能会出现脏读,不可重复读,幻读。下面通过事例一一阐述它们的概念与联系。Read uncommitted读未提交,顾名思义,就是一个事务可以读取另一个未提交事务的数据。事例:老板要给程序员发工资,程序员的...
2018-07-06 22:05:56
126
原创 GenericAPIView
继承自APIVIew,主要增加了操作序列化器和数据库查询的方法,作用是为下面Mixin扩展类的执行提供方法支持。通常在使用时,可搭配一个或多个Mixin扩展类。提供的关于序列化器使用的属性与方法属性:serializer_class 指明视图使用的序列化器方法:get_serializer_class(self)返回序列化器类,默认返回serializer_class,可以重写,例如:def ge...
2018-07-03 20:32:05
991
原创 浅析session和cookie
状态保持因为http是一种无状态协议,浏览器请求服务器是无状态的。无状态:是指一次用户请求时,浏览器、服务器无法知道之前这个用户做过什么,每次请求都是新的请求无状态的原因:浏览器与服务器是使用socket套接字进行通信的,服务器将请求结果返回给浏览器之后,会关闭当前socket连接,而且服务器也会再处理完毕页面之后销毁页面对象。有时需要保持用户浏览状态,比如用户是否登录过,浏览过哪些商品。实现状态...
2018-07-03 20:13:13
122
转载 死锁
1.什么是死锁: 一般情况下,如果同一个线程先后两次调用lock,在第二次调用时,由于锁已经被占用,该线程会挂起等待别的线程释放锁,然而锁正是被自己占用着的,该线程又被挂起而没有机会释放锁,因此就永远处于挂起等待状态了,这叫做死锁(Deadlock)。 另一种:若线程A获得了锁1,线程B获得了锁2,这时线程A调用lock试图获得锁2,结果是需要挂起等待线程B释放锁2,而这时线程B也...
2018-07-03 00:27:47
119
原创 对GIL锁的理解
Python语言和GIL解释器锁没有关系,它是在实现Python解析器(CPython)时所引入的一个概念,同样一段代码可以通过CPython,PyPy,Psyco等不同的Python执行环境来执行,然而因为CPython是大部分环境下默认的Python执行环境。所以在很多人的概念里CPython就是Python,也就想当然的把GIL归结为Python语言的缺陷,所有GIL并不是python的特性...
2018-07-03 00:18:45
4748
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人