摘要: Object-Relational Mapping,作用是将关系型数据库的表结构映射到对象上,使我们可以不必关心具体的SQL语句进行数据库的增删改查操作。 缺点是映射操作不可避免的会有性能上的损耗,优点是不必考虑SQL,程序与数据库的交互被封装,可以快速地开发。 sqlalchemy是Python中 阅读全文
posted @ 2018-08-11 20:37 wu1 阅读(755) 评论(0) 推荐(0) 编辑
摘要: 进程池 进程池与线程的信号量相似,用来控制同一时间活动的最大进程个数。 阅读全文
posted @ 2018-08-04 14:23 wu1 阅读(155) 评论(0) 推荐(0) 编辑
摘要: Python中的多线程实际上是伪多线程,无法利用多核CPU的并列运算优势,所以Python多线程适合用在IO密集型的程序中。 而cpu运算密集型的程序的并发应该使用多进程。 多进程之间的数据交互主要有Queue、Pipe和Manager,其中队列Queue和管道Pipe只能应用于相同主进程创建出来的 阅读全文
posted @ 2018-08-04 14:20 wu1 阅读(218) 评论(0) 推荐(0) 编辑
摘要: event event可以理解为一个标志位,运用于多线程之间的交互。当设置了event,wait可以通过,当没有设置event,wait阻塞 一个简单的红灯停绿灯行的程序: 阅读全文
posted @ 2018-08-02 18:57 wu1 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 锁的作用是在多个线程访问同一个资源时对资源进行保护,防止多线程操作造成结果不解预测 1.互斥锁 2.可重入锁 可重入锁是用来解决循环加锁造成的死锁问题。 互斥锁连续上锁两次以上便会陷入死锁状态,如果要使用同一把锁进行多次锁操作,必须使用可重入锁RLock。 RLock中维护了一个Lock对象和一个c 阅读全文
posted @ 2018-08-02 15:44 wu1 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 创建多线程的两种方式: 1.封装成类的形式: 注意run方法是多线程启动的入口,一定要重写 2.函数方式 注意单函数有传入参数时args参数中的逗号 PS1: 子线程在被主线程创建出来之后,子线程和主线程就是平等的,主线程并不会等待子线程结束,如果需要等待子线程结束后再进行操作,必须是有join 如 阅读全文
posted @ 2018-08-02 14:18 wu1 阅读(131) 评论(0) 推荐(0) 编辑
摘要: 1.静态方法 静态方法通过@staticmethod装饰,静态方法无法访问类变量和实例变量,可以认为静态方法是一种归类在某个类之下,但是实际上与该类没有直接关系的方法,可通过类名调用。 例如一些工具集就是通过静态方法来实现的 如果静态方法一定要访问实例变量的话,就必须将实例作为参数传入。 2.类方法 阅读全文
posted @ 2018-07-25 13:22 wu1 阅读(218) 评论(0) 推荐(0) 编辑
摘要: 类的内置特殊方法和属性: 1.__init__(self):构造函数 2.__del__(self):析构函数 3.__new__(cls): __new__必须有一个cls参数,代表要实例化的类。 必须有返回值,返回的是实例化出来的对象,可以调用父类的__new__,也可以通过object.__n 阅读全文
posted @ 2018-07-25 10:39 wu1 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 自定义异常 自定义一个继承自Exception的类,在类中定义__str__(self)返回自定义的异常信息,然后便可以通过raise抛出这种自定义异常,捕获处理和普通的异常完全一样 断言 通过assert(断言)可以简单地实现数据检验,不通过直接抛出异常的操作 阅读全文
posted @ 2018-07-25 10:24 wu1 阅读(289) 评论(0) 推荐(0) 编辑
摘要: random 获取随机数的方法: 获取随机数的方法: random()返回一个随机的小于1的实数 uniform(x,y0)返回一个随机的指定区间的实数 randint(x,y)返回一个随机整数,开区间 randrange(x,y)返回一个随机整数,闭区间 随机化序列化对象的方法: 随机化序列化对象 阅读全文
posted @ 2018-07-19 09:49 wu1 阅读(141) 评论(0) 推荐(0) 编辑