12 2017 档案

摘要:通过关键字yield,可以从生成器中产生值,并返回。我们可以将生成器作为一个生产者来使用。 在协程中,通过使用关键字yield,还可以让具有yield的程序接收值。此时函数作为消费者,消费我们传入(send)的值。 在协程中,可以把yield作为右值来用。在foo函数中,我们这样写: n = yie 阅读全文
posted @ 2017-12-31 23:24 geeklove 阅读(187) 评论(0) 推荐(0)
摘要:同步与异步: 同步:发出一个调用,若没有得到结果,则调用不返回;若调用返回,那么一定得到结果了 异步:发出一个调用,立即返回,没有返回结果。当被调用者有结果了,再通过状态、通知来告诉调用者来获取结果 核心在消息通信机制。 一个典型的例子,异步IO: 将调用者视作主线程,通常情况下,主线程中会实现一个 阅读全文
posted @ 2017-12-31 16:08 geeklove 阅读(168) 评论(0) 推荐(0)
摘要:在多线程中,对于共有的共享数据的操作,需要加锁。 但是,对于局部变量,则在每个线程之间相互独立。 假如线程T想要把函数F1中的局部变量V1传到函数F2中去,F2再想把这个变量传到F3中去,一层一层地传较为繁琐。 将Python的threading.local()返回的对象命名为tl,将tl放在全局的 阅读全文
posted @ 2017-12-31 14:32 geeklove 阅读(959) 评论(0) 推荐(0)
摘要:因为进程是操作系统调度资源的基本单位,这里的资源当然包含了CPU寄存器资源,所以只有一个CPU的话,但是想要执行多任务, 只能让多个进程轮流占用CPU 真正的并行是CPU的数量和执行任务(进程)的数量相等。 在线程中,多个线程可能会共享同一个变量。 由于线程由操作系统调度,调度行为无法预知,所以存取 阅读全文
posted @ 2017-12-31 13:44 geeklove 阅读(140) 评论(0) 推荐(0)
摘要:requests模块可用来编写请求脚本。 比如,使用requests的post函数可以模拟post请求: url即为我们要发送请求的url,data是要提交的数据,一般是json格式的。 resp是服务器处理请求之后的返回内容,通过如下方式可以看到它的内容: 当传输的内容是json格式的话,通过js 阅读全文
posted @ 2017-12-29 16:55 geeklove 阅读(1164) 评论(0) 推荐(0)
摘要:在进行单元测试的时候,有时候会遇到这种情况: 出于某些原因,我们不想测试某一部分内容,但是我们想要测试的部分却依赖这部分内容。 这时候,可以使用mock模块来模拟调用这部分内容,并给出返回结果,举例如下: 比如我们不想测试类C中的函数a,只想得到一个返回结果,可以这么写: 这样在测试中调用C类中的a 阅读全文
posted @ 2017-12-26 00:32 geeklove 阅读(1985) 评论(0) 推荐(0)
摘要:supervisor是一款进程管理工具,当想让应用随着开机启动,或者在应用崩溃之后自启动的时候,supervisor就派上了用场. 广泛应用于服务器中,用于引导控制程序的启动 安装好supervisor之后,可以新建一个/etc/supervisord.conf文件,该文件的内容通过通echo_su 阅读全文
posted @ 2017-12-24 15:24 geeklove 阅读(335) 评论(0) 推荐(0)
摘要:1 要将命令行运行的结果保存到文件中,truncate模式下使用 >,append模式下使用 >> 2 要将文件中的内容作为标准输入,应使用 <: 3 ps(process status)命令用来查看当前系统中运行着哪些进程,常用命令: 4 "|" 是Linux下的管道命令,对命令 cmd1 | c 阅读全文
posted @ 2017-12-17 16:05 geeklove 阅读(1547) 评论(0) 推荐(0)
摘要:Redis数据库也被称为数据结构数据库,因为存储基于key-value模式。 其中,value值可以为字符串(string),哈希(map),列表(list),集合(set)和有序集合(zset)。 在redis的安装目录下,有一个文件redis.conf,在该文件下存储了redis的基本配置信息. 阅读全文
posted @ 2017-12-16 22:32 geeklove 阅读(250) 评论(0) 推荐(0)
摘要:1. 在Linux系统下,使用find来查找文件: path指定了在哪个目录查找,condition限定了查找条件,operation说明了对查找结果进行的操作。 最常用的形式如下: find / -name 'filename' -ls 指的是在/目录,查找名称为‘filename’的文件,并把它 阅读全文
posted @ 2017-12-15 16:27 geeklove 阅读(287) 评论(0) 推荐(0)
摘要:在Unix系统下面有一个/etc/hosts文件,在我的Mac上,这个文件的内容如下: 这个文件显示了域名和网址之间的映射情况。在这个文件里出现的网址,访问的时候不需要使用DNS协议,而是直接读取域名。 可以试着在文件末尾添加一行: 这样在浏览器里输入百度网址,会发现百度首页永远出现不了了! 阅读全文
posted @ 2017-12-14 21:29 geeklove 阅读(6258) 评论(0) 推荐(1)
摘要:SSH(Secure Shell, 安全Shell协议)是一种加密的网络传输协议,经常用于安全的远程登录。 SSH只是一种协议,可以有多种实现。 OPENSSH是一种应用广泛的实现。 sshd是daemon进程,只有当本机sshd启动,远程机器才能登录进来。 使用ssh登录的过程如下: 1 使用指令 阅读全文
posted @ 2017-12-14 20:42 geeklove 阅读(199) 评论(0) 推荐(0)
摘要:序列化,指的是把内存中的变量(如类的实例)变成可存储或可传输的过程。 JSON(JavaScript Object Notation, JavaScript对象表示)是网络传输中经常使用的一种数据形式。 在Python中,经常将字典转化成JSON来发送,使用的主要方法为dumps: 注意以下几点: 阅读全文
posted @ 2017-12-13 19:02 geeklove 阅读(36471) 评论(0) 推荐(0)
摘要:今天使用Python的unittest模块写了些单元测试,现记录下要点: 使用unittest的基本格式如下: 基本上网上已经已经说的很详细了,在使用过程中发现以下几点比较重要: 1.unittest执行顺序,对于每一个test,都要先执行setUp,再执行tearDown,并不是setUp执行完一 阅读全文
posted @ 2017-12-13 17:47 geeklove 阅读(5137) 评论(0) 推荐(1)
摘要:今天在安装一个leader写的package的时候,同事建议安装到虚拟环境中,再在PyCharm里使用该虚拟环境即可.此处记录下经过: 开发Python应用的时候,有时会遇到不同的Python应用依赖不同的开发环境的情况,或者不想将package安装到全局中,这时需要配置使用不同的虚拟环境. vir 阅读全文
posted @ 2017-12-12 23:30 geeklove 阅读(7225) 评论(1) 推荐(1)
摘要:最近在公司,老是遇到Git远程操作的问题,现总结如下: 1,本地checkout一个新的分支,向远程push的时候,若远程没有该分支,会新建一个. 2.将远程代码clone到本地修改并commit后,若远程代码有变化,应使用pull拉取,解决冲突后再提交 3.pull = fetch + merge 阅读全文
posted @ 2017-12-12 00:27 geeklove 阅读(214) 评论(0) 推荐(0)
摘要:本文总结自廖雪峰网站. Git支持多种协议,git://使用ssh协议,速度最快,也可使用https等协议. 对远程库操作: 推送: 1.先远程建立一个Repo库,f 2.远程和本地关联: 3.推送: 加入 -u 选项,以后不用再设置关联, 可直接通过 git push origin master 阅读全文
posted @ 2017-12-05 10:10 geeklove 阅读(174) 评论(0) 推荐(0)
摘要:Linux进程之间的通信: 本文主要讨论信号问题。 在Linux下的进程与线程(一)中提到,调度器可以用中断的方式调度进程。 然而,进程是怎么知道自己需要被调度了呢?是内核通过向进程发送信号,进程才得以知道的。 Linux系统的进程之间是通过信号来通信的。 程序员在Shell上显式地发送信号使用的是 阅读全文
posted @ 2017-12-04 23:48 geeklove 阅读(880) 评论(0) 推荐(0)
摘要:本文总结自廖雪峰的网站。 几个名词: 工作区(Working Directory):电脑里能看到的目录 版本库(Repository):包含暂存区和master 暂存区(Stage):待放入master的寄存区。 master:自动创建的第一个分支假设新建了一个目录a,将a视为可被Git管理的目录: 阅读全文
posted @ 2017-12-04 23:18 geeklove 阅读(403) 评论(0) 推荐(0)