装饰器:概念:把一个函数当作参数传递给一个函数,返回一个替代版的函数本质上就是一个返回函数的函数“在不改变原函数的基础上,给函数增加功能”@符号,那只是一个简短的方式来生成一个被装饰的函数defpaint(func):参数是一个函数definner():print('#########')这个的整个部分就都是装饰器func()returninner@paint这个就是函数戴帽子,也就是装饰器deffunc():print('haveaniceday!!')
系统 2019-09-27 17:45:41 1795
这次要为我的python程序加上数据库,主要是实现从mysql中查询出数据并在页面上显示出来。首先是mysql的配置文件config.pyhost="127.0.0.1"user="root"password=""charset="utf8"database="service"port=3306然后是从数据库中读取数据的aService.pyimportMySQLdbimportsysimportconfigclassAService(object):de
系统 2019-09-27 17:45:28 1795
保证只能运行一个脚本实例,方法是程序运行时监听一个特定端口,如果失败则说明已经有实例在跑。使用装饰器实现,便于重用复制代码代码如下:importfunctoolsdefjust_one_instance(func):'''装饰器如果已经有实例在跑则退出复制代码代码如下::return:'''@functools.wraps(func)deff(*args,**kwargs):importsockettry:#全局属性,否则变量会在方法退出后被销毁globa
系统 2019-09-27 17:45:27 1795
1.安装ubuntu有uwsgi的ppa:add-apt-repositoryppa:stevecrozz/ppaapt-getupdateapt-getinstalluwsgi2.用uwsgi代替mod_wsgiNginx的整体配置这里不说了,假设已经明白Nginx的基本配置,那么uwsgi就类似这么配置:location/{includeuwsgi_paramsuwsgi_pass127.0.0.1:9090}再比如django就是:.......fr
系统 2019-09-27 17:38:46 1795
IPython+ptpython,完美体验首先是安装pipinstallipythonptpython然后使用ptipython有什么好处1.IPython是非常强大的Python增强工具2.ptpython提供了类似IDE的自动补全功能3.当你在命令行输入pyipython时,便结合了这两者的功能,无比强大!virtualenv+virtualenvwrapper,轻松创建隔离环境首先安装pipinstallvirtualenvwrapper(会自动把v
系统 2019-09-27 17:38:45 1795
注释文本箭头结果展示:完整代码示例:importnumpyasnpimportmatplotlib.pyplotaspltfig,ax=plt.subplots(figsize=(5,5))ax.set_aspect(1)x1=-1+np.random.randn(100)y1=-1+np.random.randn(100)x2=1.+np.random.randn(100)y2=1.+np.random.randn(100)ax.scatter(x1,y
系统 2019-09-27 17:38:44 1795
OK,首先写一个pythonsocket的server段,对开放三个端口:10000,10001,10002.krondo的例子中是每个server绑定一个端口,测试的时候需要分别开3个shell,分别运行.这太麻烦了,就分别用三个Thread来运行这些services.importoptparseimportosimportsocketimporttimefromthreadingimportThreadimportStringIOtxt='''1111
系统 2019-09-27 17:38:44 1795
什么是中间件我们从一个简单的例子开始。高流量的站点通常需要将Django部署在负载平衡proxy之后。这种方式将带来一些复杂性,其一就是每个request中的远程IP地址(request.META["REMOTE_IP"])将指向该负载平衡proxy,而不是发起这个request的实际IP。负载平衡proxy处理这个问题的方法在特殊的X-Forwarded-For中设置实际发起请求的IP。因此,需要一个小小的中间件来确保运行在proxy之后的站点也能够在r
系统 2019-09-27 17:38:42 1795
字符串--不可改变的序列如同大多数高级编程语言一样,变长字符串是Python中的基本类型。Python在“后台”分配内存以保存字符串(或其它值),程序员不必为此操心。Python还有一些其它高级语言没有的字符串处理功能。在Python中,字符串是“不可改变的序列”。尽管不能“按位置”修改字符串(如字节组),但程序可以引用字符串的元素或子序列,就象使用任何序列一样。Python使用灵活的“分片”操作来引用子序列,字符片段的格式类似于电子表格中一定范围的行或列
系统 2019-09-27 17:38:37 1795
Python登录网站详解及实例对于大部分论坛,我们想要抓取其中的帖子分析,首先需要登录,否则无法查看。这是因为HTTP协议是一个无状态(Stateless)的协议,服务器如何知道当前请求连接的用户是否已经登录了呢?有两种方式:在URI中显式地使用SessionID;利用Cookie,大概过程是登录一个网站后会在本地保留一个Cookie,当继续浏览这个网站的时候,浏览器会把Cookie连同地址请求一起发送过去。Python提供了相当丰富的模块,所以对于这种网
系统 2019-09-27 17:38:24 1795
这几天在翻旧代码时发现以前写的注释部分有很多单词拼写错误,这些单词错得不算离谱,应该可以用工具自动纠错绝大部分。用Python写个拼写检查脚本很容易,如果能很好利用aspell/ispell这些现成的小工具就更简单了。要点1、输入一个拼写错误的单词,调用aspell-a后得到一些候选正确单词,然后用距离编辑进一步�鹧〕龈�精确的词。比如运行aspell-a,输入‘hella'后得到如下结果:hell,Helli,hello,heal,Heall,he'll
系统 2019-09-27 17:38:21 1795
hasattr(object,name)作用:判断对象object是否包含名为name的特性(hasattr是通过调用getattr(ojbect,name)是否抛出异常来实现的)。示例:>>>hasattr(list,'append')True>>>hasattr(list,'add')Falsegetattr(object,name,default):作用:返回object的名称为name的属性的属性值,如果属性name存在,则直接返回其属性值;如果属
系统 2019-09-27 17:38:20 1795
微软最近出了个必应bing缤纷桌面,使用下来还是不错,可以每天更换Bing首页的北京作为壁纸,但是该软件有个不好的地方是,安装后桌面上会有一个搜索框出现,很是烦人,而且不能关掉。于是出于技术考虑,想到了使用Python来实现这个功能。正如很多介绍Python书中那样,Python是中胶水语言,用在哪里都是可行的。想要使用Python给桌面设置背景只需要下个模块安装即可:http://sourceforge.net/projects/pywin32/代码非常
系统 2019-09-27 17:38:16 1795
实例如下:defTestDic1():dict2={'aa':222,11:222}forvalindict2:printvaldefTestDic2():dict2={'aa':222,11:222}for(key,val)indict2.items():printkey,":",valdefTestList1():list=[1,2,3,4,5,3,2,'ada','fs3']foriinrange(len(list)):printlist[i]def
系统 2019-09-27 17:38:16 1795
本文实例讲述了Python中的is和id用法。分享给大家供大家参考。具体分析如下:(ob1isob2)等价于(id(ob1)==id(ob2))首先id函数可以获得对象的内存地址,如果两个对象的内存地址是一样的,那么这两个对象肯定是一个对象。和is是等价的。Python源代码为证。复制代码代码如下:staticPyObject*cmp_outcome(intop,registerPyObject*v,registerPyObject*w){intres=0
系统 2019-09-27 17:37:52 1795