摘要: 一个对象实例可以有自己的属性和方法,当我们调用实例方法时,我们用instance.method()来调用。能不能直接在实例本身上调用呢?在Python中,答案是肯定的。 任何类,只需要定义一个__call__()方法,就可以直接对实例进行调用。请看示例: class Student(object): def __init__(self, name): self.nam... 阅读全文
posted @ 2018-09-13 20:41 zhaijihai 阅读(237) 评论(0) 推荐(0) 编辑
摘要: 一、约束 约束条件与数据类型的宽度一样,都是可选参数 作用:用于保证数据的完整性和一致性 主要分为: RIMARY KEY (PK) 标识该字段为该表的主键,可以唯一的标识记录 FOREIGN KEY (FK) 标识该字段为该表的外键 NOT NULL 标识该字段不能为空 UNIQUE KEY (UK) 标识该字段的值是唯一的 AUTO_INCREMENT 标识该字... 阅读全文
posted @ 2018-09-13 15:18 zhaijihai 阅读(621) 评论(0) 推荐(0) 编辑
摘要: 一、创建表的完整语法 #[]内的可有可无,即创建表时字段名和类型是必须填写的,宽度与约束条件是可选择填写的。 create table 表名( 字段名1 类型[(宽度) 约束条件], 字段名2 类型[(宽度) 约束条件], 字段名3 类型[(宽度) 约束条件] ); #解释: 类型:使用限制字段必须以什么样的数据类型传值 约束条件:约束条件是在类型之外添加一种额外的限制 # 注意: a、在同... 阅读全文
posted @ 2018-09-12 20:15 zhaijihai 阅读(435) 评论(0) 推荐(0) 编辑
摘要: Python yield 使用浅析 转载:https://www.ibm.com/developerworks/cn/opensource/os-cn-python-yield/ 您可能听说过,带有 yield 的函数在 Python 中被称之为 generator(生成器),何谓 generato 阅读全文
posted @ 2018-09-11 20:36 zhaijihai 阅读(146) 评论(0) 推荐(0) 编辑
摘要: 一、数据库相关概念 1、两种硬件扩展方式 a、垂直扩展:针对一台计算机 b、水平扩展:多台普通计算机 2、数据库相关概念 数据库服务器(本质就是一个台计算机,该计算机之上安装有数据库管理软件的服务端)--简称数据库(运维角度) 数据库管理管理系统RDBMS(本质就是一个C/S架构的套接字软件)--简称数据库(运维角度) 注:一般数据库管理系统的服务端安在li... 阅读全文
posted @ 2018-09-11 20:18 zhaijihai 阅读(1061) 评论(0) 推荐(0) 编辑
摘要: 1.进程池与线程池: 为什么要用“池”:池子使用来限制并发的任务数目,限制我们的计算机在一个自己可承受的范围内去并发地执行任务 池子内什么时候装进程:并发的任务属于计算密集型 池子内什么时候装线程:并发的任务属于IO密集型 1、进程池 from concurrent.futures import ProcessPoolExecutor,ThreadPoolExecutor import tim... 阅读全文
posted @ 2018-09-11 20:16 zhaijihai 阅读(623) 评论(0) 推荐(0) 编辑
摘要: GIL只能保证垃圾回收机制的安全,进程中的数据安全还是需要自定义锁 线程执行代码首先要抢到GIL全局锁,假设线程X首先抢到,以为要抢到自定义锁要执行代码,所以这个线程在执行代码的时候就很容抢到了自定义锁,当线程在执行代码的的时候遇到IO操作就会被CPU检测到,并且夺回CPU的执行权限,这个线程就释放 阅读全文
posted @ 2018-09-07 16:17 zhaijihai 阅读(165) 评论(0) 推荐(0) 编辑
摘要: 进程部分: 1. 进程间通信=>IPC 2. 生产者消费者模型(*****) 线程部分: 1. 线程理论(*****) 2. 开启线程的两种方式(*****) 3. 线程对象其他相关的属性或方法 4. 守护线程 5. 线程互斥锁 6. GIL全局解释器... 阅读全文
posted @ 2018-09-06 15:41 zhaijihai 阅读(184) 评论(0) 推荐(0) 编辑
摘要: 程序入口 对于很多编程语言来说,程序都必须要有一个入口,比如 C,C++,以及完全面向对象的编程语言 Java,C# 等。如果你接触过这些语言,对于程序入口这个概念应该很好理解,C 和 C++ 都需要有一个 main 函数来作为程序的入口,也就是程序的运行会从 main 函数开始。同样,Java 和 C# 必须要有一个包含 Main 方法的主类来作为程序入口。 而 Python 则有不同,它属... 阅读全文
posted @ 2018-09-05 16:27 zhaijihai 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 并发编程 二、多进程 要让Python程序实现多进程(multiprocessing),我们先了解操作系统的相关知识。 Unix/Linux操作系统提供了一个fork()系统调用,它非常特殊。普通的函数调用,调用一次,返回一次,但是fork()调用一次,返回两次,因为操作系统自动把当前进程(称为父进程)复制了一份(称为子进程),然后,分别在父进程和子进程内返回。 子进程永远返回0,而父进程返回子... 阅读全文
posted @ 2018-09-05 15:55 zhaijihai 阅读(245) 评论(0) 推荐(0) 编辑