编程技术 - 军军小站|张军博客
Python

Python的装饰器模式与面向切面编程详解

今天来讨论一下装饰器。装饰器是一个很著名的设计模式,经常被用于有切面需求的场景,较为经典的有插入日志、性能测试、事务处理等。装饰器是解决这类问题的绝佳设计,有了装饰器,我们就可以抽离出大量函数中与函数功能本身无关的雷同代码并继续重用。概括的讲,装饰器的作用就是为已经存在的对象添加额外的功能。1.装饰器入门1.1.需求是怎么来的?装饰器的定义很是抽象,我们来看一个小例子。复制代码代码如下:deffoo():print'infoo()'foo()这是一个很无聊

系统 2019-09-27 17:45:33 1822

Python

详解Python的Django框架中的中间件

什么是中间件我们从一个简单的例子开始。高流量的站点通常需要将Django部署在负载平衡proxy之后。这种方式将带来一些复杂性,其一就是每个request中的远程IP地址(request.META["REMOTE_IP"])将指向该负载平衡proxy,而不是发起这个request的实际IP。负载平衡proxy处理这个问题的方法在特殊的X-Forwarded-For中设置实际发起请求的IP。因此,需要一个小小的中间件来确保运行在proxy之后的站点也能够在r

系统 2019-09-27 17:38:42 1822

Python

Python中的异常处理简明介绍

python异常处理机制和java类似,采用try-except-finally的结构.try-except检测异常格式复制代码代码如下:try:try_statementexcept(ErrorType1,ErrorType2),e:handle_statementfinally:finally_statement实例复制代码代码如下:#!/usr/bin/pythontry:a=12b=0c=a/bexceptException,e:print"Exc

系统 2019-09-27 17:38:36 1822

Python

Python实现多线程抓取妹子图

心血来潮写了个多线程抓妹子图,虽然代码还是有一些瑕疵,但是还是记录下来,分享给大家。Pic_downloader.py#-*-coding:utf-8-*-"""CreatedonFriAug0717:30:582015@author:Dreace"""importurllib2importsysimporttimeimportosimportrandomfrommultiprocessing.dummyimportPoolasThreadPooltype

系统 2019-09-27 17:38:32 1822

Python

对于Python编程中一些重用与缩减的建议

返璞归真许多流行的玩具都以这样一个概念为基础:简单的积木。这些简单的积木可通过多种方式组合在一起构造出全新的作品――有时甚至完全令人出乎意料。这一概念同样适用于现实生活中的建筑领域,将基本原材料组合在一起,形成有用的建筑物。平凡无奇的材料、技术和工具简化了新建筑物的建造过程,同样也简化了对新踏入此领域的人员的培训。相同的基本概念也适用于计算机程序开发技术,包括以Python编程语言编写的程序。本文介绍了使用Python创建基本构件(buildingbloc

系统 2019-09-27 17:38:30 1822

Python

Python中__name__的使用实例

1.如果模块是被导入,__name__的值为模块名字2.如果模块是被直接执行,__name__的值为'__main__'Py1.py复制代码代码如下:#!/usr/bin/envpythondeftest():print'__name__=',__name__if__name__=='__main__':test()Py2.py复制代码代码如下:#!/usr/bin/envpythonimportPy1.pydeftest():print'__name__

系统 2019-09-27 17:38:30 1822

Python

浅谈Python数据类型之间的转换

Python数据类型之间的转换函数描述int(x[,base])将x转换为一个整数long(x[,base])将x转换为一个长整数float(x)将x转换到一个浮点数complex(real[,imag])创建一个复数str(x)将对象x转换为字符串repr(x)将对象x转换为表达式字符串eval(str)用来计算在字符串中的有效Python表达式,并返回一个对象tuple(s)将序列s转换为一个元组list(s)将序列s转换为一个列表set(s)转换为可

系统 2019-09-27 17:38:27 1822

Python

使用Python脚本将Bing的每日图片作为桌面的教程

微软最近出了个必应bing缤纷桌面,使用下来还是不错,可以每天更换Bing首页的北京作为壁纸,但是该软件有个不好的地方是,安装后桌面上会有一个搜索框出现,很是烦人,而且不能关掉。于是出于技术考虑,想到了使用Python来实现这个功能。正如很多介绍Python书中那样,Python是中胶水语言,用在哪里都是可行的。想要使用Python给桌面设置背景只需要下个模块安装即可:http://sourceforge.net/projects/pywin32/代码非常

系统 2019-09-27 17:38:16 1822

Python

浅析Python中MySQLdb的事务处理功能

前言任何应用都离不开数据,所以在学习python的时候,当然也要学习一个如何用python操作数据库了。MySQLdb就是python对mysql数据库操作的模块。今天写了个工具,目的是把csv中的数据插入到数据库中去。其中有一部分,是需要分别向两张表中插入两条数据,如果第二张表中的数据已经存在,那么第一张表中的数据也不需要插入。然后通过百度查找发现,其实MySQLdb库,自带了事务处理的功能,pymysql库也是一样。conn=MySQLdb.conne

系统 2019-09-27 17:38:06 1822

Python

Python实现简单多线程任务队列

最近我在用梯度下降算法绘制神经网络的数据时,遇到了一些算法性能的问题。梯度下降算法的代码如下(伪代码):defgradient_descent():#thegradientdescentcodeplotly.write(X,Y)一般来说,当网络请求plot.ly绘图时会阻塞等待返回,于是也会影响到其他的梯度下降函数的执行速度。一种解决办法是每调用一次plotly.write函数就开启一个新的线程,但是这种方法感觉不是很好。我不想用一个像cerely(一种分

系统 2019-09-27 17:37:56 1822

Python

教你用Type Hint提高Python程序开发效率

简介TypeHint(或者叫做PEP-484)提供了一种针对Python程序的类型标注标准。为什么使用TypeHint?对于动态语言而言,常常出现的情况是当你写了一段代码后,隔段时间你可能忘记这个方法的原型是什么样子的了,你也不清楚具体应该传入什么类型的参数,这样往往需要你去阅读代码才能定义每个类型具体是什么。或者当你使用一个文档并不是特别完全的第三方库,你不知道这个库应该如何使用,这都会很痛苦。现在,借助TypeHint,你可以实现:1、实现类型检查,防

系统 2019-09-27 17:37:43 1822

Python

在Mac OS上使用mod_wsgi连接Python与Apache服务器

一、安装mod_wsgi3.4:./configure--with-apxs=/Users/levin/dev/apache2.2.27/bin/apxs--with-python=/usr/bin/pythonmakemakeinstall编辑httpd.conf使Apache导入模块mod_wsgi.so以及引入vhost配置文件:LoadModulewsgi_modulemodules/mod_wsgi.soIncludeconf/extra/htt

系统 2019-09-27 17:37:36 1822

编程技术

struts2 遍历Map的多种方法

struts2遍历Map的多种方法主要针对以下几种情况的Map:Java代码privateMapstrMap=newHashMap();privateMapperMap=newHashMap();privateMapstrArryMap=newHashMap();priv

系统 2019-08-29 23:49:18 1822

编程技术

junit 4学习

JUNIT4中,有几个地方要注意一下的,归纳之1@Test(expected=ArithmeticException.class)publicvoidtestDivide(){assertEquals(3,Math.divide(9,3));Math.divide(10,0);//除数不能为0,会抛出异常}junit4中不用trycatach了,用这样声明“@Test(expected=ArithmeticException.class)”Junit4就会

系统 2019-08-29 23:34:25 1822

编程技术

【Flex应用展示之】-GOOGLE WEB DESKTOP

Flex应用展示之-GOOGLEWEBDESKTOP刚刚拿到这个消息的时候,我很吃惊,啊,google终于要找哦web操作系统啦,也是我便去google的lab去找这个产品,早来找不到。到最后回到作者的网页上才发现,原来这个应用并不是google搞得,而是另一款的flex网络应用程序。太有才,我只能这么说了,于是便赶到其主页一睹新鲜。这个应用搜集了google几乎所有的产品,不过现在做的不是太完善,还有很多的bug有待改进,不过我很期待这款应用程序何时才能

系统 2019-08-29 23:30:03 1822