文章的主题不要使用可变对象作为函数的默认参数例如list,dict,因为def是一个可执行语句,只有def执行的时候才会计算默认默认参数的值,所以使用默认参数会造成函数执行的时候一直在使用同一个对象,引起bug。基本原理在Python源码中,我们使用def来定义函数或者方法。在其他语言中,类似的东西往往只是一一个语法声明关键字,但def却是一个可执行的指令。Python代码执行的时候先会使用compile将其编译成PyCodeObject.PyCodeOb
系统 2019-09-27 17:45:28 2015
相信大家在日常学习或者是阅读英文文章的过程中,难免会出现几个不认识的单词,或者想快速翻译某段英文的意思。今天,利用Python爬虫等知识,教大家打造一个微信下的翻译小助手。好吧,开始干活。先来看看效果如何发送要翻译的内容给我们的翻译小助手,它会自动回复翻译好的内容。环境配置:Python版本:3.6.0系统平台:Windows10X64IDE:pycharm相关模块:json模块itchat模块re模块request模块parse模块以及一些Python自
系统 2019-09-27 17:45:23 2015
利用python自动生成dockernginx反向代理配置由于在测试环境上用docker部署了多个应用,而且他们的端口有的相同,有的又不相同,数量也比较多,在使用jenkins发版本的时候,不好配置,于是想要写一个脚本,能在docker容器创建、停止的时候,自动生成nginx反向代理,然后reloadnginx我的原则是尽量简单,轻量,内存占用少目标很明确,只要能监听到docker的容器启动/停止事件,即可网上查了一下可以用dockerevents来监听d
系统 2019-09-27 17:38:32 2015
如果直接对大文件对象调用read()方法,会导致不可预测的内存占用。好的方法是利用固定长度的缓冲区来不断读取文件内容。即通过yield。在用Python读一个两个多G的txt文本时,天真的直接用readlines方法,结果一运行内存就崩了。还好同事点拨了下,用yield方法,测试了下果然毫无压力。咎其原因,原来是readlines是把文本内容全部放于内存中,而yield则是类似于生成器。代码如下:defopen_txt(file_name):withope
系统 2019-09-27 17:38:24 2015
一、列表(List)list是一个可以在其中存储一系列项目的数据结构。list的项目之间需用逗号分开,并用一对中括号括将所有的项目括起来,以表明这是一个list。下例用以展示list的一些基本操作:#定义一个list对象class_list:class_list=['Michael','Bob','Tracy']#获得一个class_list的长度print'classhave',len(class_list),'students'#访问class_lis
系统 2019-09-27 17:38:23 2015
我的操作系统为centos6.51首先选择django要使用什么数据库。django1.10默认数据库为sqlite3,本人想使用mysql数据库,但为了测试方便顺便要安装一下sqlite开发包。yuminstallmysqlmysql-devel#为了测试方便,我们需要安装sqlite-devel包yuminstallsqlite-devel2接下来需要安装Python了,因为Python3已经成为主流,所以接下来我们要安装Python3,到官网去下载P
系统 2019-09-27 17:37:45 2015
Python语言简洁明了,可以用较少的代码实现同样的功能。这其中Python的四个内置数据类型功不可没,他们即是list,tuple,dict,set。这里对他们进行一个简明的总结。List字面意思就是一个集合,在Python中List中的元素用中括号[]来表示,可以这样定义一个List:L=[12,'China',19.998]可以看到并不要求元素的类型都是一样的。当然也可以定义一个空的List:L=[]Python中的List是有序的,所以要访问Lis
系统 2019-09-27 17:37:43 2015
Remoteprocedurecalls--远程过程调用Androidhasalightweightmechanismforremoteprocedurecalls(RPCs)—whereamethodiscalledlocally,butexecutedremotely(inanotherprocess),withanyresultreturnedbacktothecaller.Thisentailsdecomposingthemethodcalland
系统 2019-08-29 23:53:05 2015
tolua++的源码包中有很多测试例子。这里我用更最简单的例子来学习。第一个例子是数组。仅仅是把C++中的一个数组导出到Lua中,可以在脚本中访问并修改。tarray.pkg文件:$#include"tarray.h"externintg_Arr[10]@Arr;很简单,$#include"tarray.h",包含实际的C头文件,这个语句会去掉$符号,直接插入到tolua++.exe生成的C文件中。文档中说$lfile,$cfile,$ifile会特别处理
系统 2019-08-29 23:30:55 2015
Cassandra0.7版本现在还处于beta状态,但是毋庸置疑很快将发布稳定版,拭目以待吧,新版本对旧版本有了很多的改动,这里挑几个比较重要的说:1、首先就是实现了动态的管理keyspace和columnfamily,可以在执行过程中使用thrift接口实现增删改,对于配置文件中的keyspace只能通过bean的方式load进去,即可以使用Jconsole连接,然后找到下图所示的loadSchemaFromYAML,点击执行即可载入:另外注意的是,需要
系统 2019-08-29 23:21:09 2015