随笔分类 -  Python

1 2 3 下一页

摘要:为了解决Http无状态问题,产生了cookie和session技术。 传统的session技术解决了无状态问题,但是不能防止客户端的篡改,而且对于服务端要保存session,在数据量较大,业务规模增加时,还要解决多台服务器之间的session共享问题,使用redis或者memcached等方案。 产 阅读全文

posted @ 2018-11-26 15:24 Riper

摘要:__slots__ 最简单的hash算法,取余,便于理解模型 字典为了提高查询效率,使用空间换时间 实例的属性都需要一个空间,里边只放一两个了浪费 解决数百万个对象问题,字典就太多了 此时就可以用slots解决,只要定义了__slots__,对象的字典消失 __slots__中没有的属性,对象不能添 阅读全文

posted @ 2018-11-16 23:29 Riper 阅读(108) 评论(0) 推荐(0)

摘要:模块化 一般来说,编程语言中,库,包,模块是同一种概念,是代码组织方式 python只有模块的对象类型,但是为了模块化组织模块的便利,提供了包的概念 模块module,指的是Python的源代码文件。 包package,指的是模块组织在一起的包名同名的目录及其相关文件 导入语句 import模块,允 阅读全文

posted @ 2018-11-16 23:28 Riper 阅读(50) 评论(0) 推荐(0)

摘要:异常处理 异常Exception 错误 Error 逻辑错误:算法写错了, 笔误:变量名错误或者语法错误 函数或类使用错误,也属于逻辑错误 大部分的错误都可以避免 异常Exception 本意就是意外情况,在没有错误的前提下,在某些情况下,会有意外,导致程序无法正常执行下去 例如open文件,已存在 阅读全文

posted @ 2018-11-16 23:27 Riper 阅读(187) 评论(0) 推荐(0)

摘要:ORM ORM,对象关系映射,对象和关系之间的映射,使用面向对象的方式来操作数据库。 关系模型和Python对象之间的映射 table => class ,表映射为类 row => object ,行映射为实例 column => property ,字段映射为属性 SQLAlchemy 是一个OR 阅读全文

posted @ 2018-11-16 23:25 Riper 阅读(195) 评论(0) 推荐(0)

摘要:描述器 描述器的表现 用到三个魔术方法,__get__, __set__, __delete__ 方法签名如下 object.__get__(self,instance,owner) object.__set__(self,instance,value) object.__delete__(self 阅读全文

posted @ 2018-11-16 23:22 Riper 阅读(125) 评论(0) 推荐(0)

摘要:可调用对象 函数也是对象,函数可以调用,对象加上括号,就是对象调用自己的__call__方法,函数也是可调用对象 都返回__main__ foo __call__ 类中定义的方法,使实例可以像函数一样调用 格式化返回坐标的点 加法器 斐波那契数列的实现 使用类来实现斐波那契数列较为合适,还可以缓存, 阅读全文

posted @ 2018-11-16 23:21 Riper 阅读(119) 评论(0) 推荐(0)

摘要:反射 概述 运行时,区别于编译时,指的是程序被加载到内存中执行时 反射,reflection,指的是运行时获取类型定义信息 大部分动态语言提供了反射 一个对象运行时,像照镜子一样,反射出类型信息 自省也是反射的一种称呼 在Python中能够通过一个对象,找出其 type,class ,attrbut 阅读全文

posted @ 2018-11-16 23:21 Riper 阅读(140) 评论(0) 推荐(0)

摘要:魔术方法 python精华之一 特殊属性 __name__ 类,函数,方法等的名字__modle__ 主模块,当前的模块__main__,其他模块调用返回模块对象__class__ 相当于type,对象或类所属的类__bases__ 返回基类的元组,顺序为基类列表中出现的顺序__doc__ 文档,未 阅读全文

posted @ 2018-11-16 23:20 Riper 阅读(121) 评论(0) 推荐(0)

摘要:分发 对于监控系统,需要处理很多数据,包括日志,对其中的数据采集,分析。 被监控数据对象就是数据的生产者producer,数据的处理程序就是消费者consumer。 生产者消费者模型的传统的模型,生产,消费的耦合度大,写在同一个代码中,如果生产规模扩大,就不易扩大,而且生产和消费的速度很难匹配. 简 阅读全文

posted @ 2018-11-16 23:19 Riper 阅读(236) 评论(0) 推荐(0)

摘要:线程同步 概念 线程间的操作,需要协同完成任务,在访问某些数据时,其他线程不能访问这些数据,直到该线程完成对数据的操作。 不同的系统实现技术不同,有临界区(Critical Section)、互斥量(Mutex)、信号量(Semaphore)、事件等 Event Event事件,是线程间通信机制中最 阅读全文

posted @ 2018-11-16 23:17 Riper 阅读(196) 评论(0) 推荐(0)

摘要:并发 并发和并行 并行,parallel,某时刻,同时做几件事 并发,concurrency,时间段内有事情要处理 并发解决方案 并发必须解决,所有程序几乎都要面对,特别是面对用户是互联网用户时,高并发更需要处理 打饭模型,中午十二点,食堂涌入大量人,如果人很多,这就是高并发。 1,队列,排队, 假 阅读全文

posted @ 2018-11-16 23:17 Riper 阅读(137) 评论(0) 推荐(0)

摘要:包管理 python的模块或者源文件可以直接复制到目标项目目录中,就可以导入使用了。 目的是为了复用 Pypi(Python Package Index),公共的模块储存中心,https://pypi.org 主要工具有: distutils 官方库,使用安装脚本setup.py来构建,安装包 20 阅读全文

posted @ 2018-11-16 23:17 Riper 阅读(103) 评论(0) 推荐(0)

摘要:IO概念及 多路复用 异步编程 同步异步 函数或方法被调用的时候,调用者是否得到最终结果的 直接得到最终结果结果的,就是同步调用; 不直接得到最终结果的,就是异步调用。 阻塞,非阻塞 函数或方法调用的时候,是否立刻返回。 立即返回就是非阻塞调用; 不立即返回就是阻塞调用。 区别 同步、异步,与阻塞、 阅读全文

posted @ 2018-11-06 19:55 Riper 阅读(230) 评论(0) 推荐(0)

摘要:SocketServer socket编程过于底层,编程虽然有套路,但是想要写出健壮的代码还是比较困难的,所以很多语言都对socket底层API进行封装,Python的封装就是——socketserver模块。它是网络服务编程框架,便于企业级快速开发。 SocketServer简化了网络服务器的编写 阅读全文

posted @ 2018-11-04 18:04 Riper 阅读(114) 评论(0) 推荐(0)

摘要:socket的UDP编程 UDP编程 UDP服务端流程 UDP服务端 创建socket对象。socket.SOCK_DGRAM 绑定IP和Port,bind()方法 传输数据 接收数据,socket.recvfrom(bufsize[, flags]),获得一个二元组(string, address 阅读全文

posted @ 2018-11-04 16:41 Riper 阅读(288) 评论(0) 推荐(0)

摘要:网络编程 Socket编程 socket套接字 端到端编程,建立了一条数据传输的通道 网络编程的基础,所有的操作系统都支持socket socket是一种通用的网路编程接口,不需要关心协议层,只是打通了一条通道,和网络层次没有一一对应关系。 IPC,RPC,最底层也是socket实现 协议族 名称 阅读全文

posted @ 2018-11-03 19:41 Riper 阅读(238) 评论(0) 推荐(0)

摘要:concurrent 包 future 模块 异步并行任务编程模块,提供了一个高级的异步可执行的便利接口。 提供了两个池执行器 ThreadPoolExectutor ThreadPoolExectutor(max_works=1) 池中至多创建max_workers个线程来同时异步执行,返回Exe 阅读全文

posted @ 2018-11-03 14:15 Riper 阅读(149) 评论(0) 推荐(0)

摘要:多进程 multiprocessing 数据的共享,涉及调度问题,要合理使用计算机的资源,进程管理的线程太多就无法管理了,操作系统管理的进程太多也无法实现,合理范围内使用。 多进程的启动要在主模块下 进程都认为自己独占cup资源。由操作系统调度 cpu绑定,利用多核的一二级缓存,加快计算速度,如果切 阅读全文

posted @ 2018-11-03 13:36 Riper 阅读(120) 评论(0) 推荐(0)

摘要:二分查找 二分查找的前提是有序,有序的线性表,如果是字典,关键字有序 二分查找的时间复杂度是O(log n),在查找方法中是较常见的方法 假设有一个列表[37,99,73,48,47,63,35,37,37,37,90],先排序,再插入数字,使用python该怎样写呢,以下是一种解法 当然,也可以反 阅读全文

posted @ 2018-09-19 15:39 Riper 阅读(134) 评论(0) 推荐(0)

1 2 3 下一页

导航