python property用法

property用来设置/读取一个类的属性,今天用到此方法记录一下备忘。官方文档描述如下:property([fget[,fset[,fdel[,doc]]]])classC(object):def__init__(self):self._x=Nonedefgetx(self):returnself._xdefsetx(self,value):self._x=valuedefdelx(self):delself._xx=property(getx,setx,delx,"I'mthe'x'property.")

精彩继续

Python IP转数字,数字转IP

def IntToDottedIP( intip ): octet = '' for exp in [3,2,1,0]: octet = octet + str(intip / ( 256 ** exp )) + "." intip = intip % ( 256 ** exp ) return(octet.rstrip('.')) def DottedIPToInt( dotted_ip ): exp = 3 intip = 0 for quad in dotted_ip.split('.'): intip = intip + (int(quad) * (256 ** exp)) exp = exp - 1 return(int...

精彩继续

tornado获取客户端IP

网上搜到的用tornado获取客户端IP都使用self.request.headers['X-Real-Ip'],但实际翻tornado源代码发现只需要获取self.request.remote_ip即可取到客户端IP见引用tornado源代码(对应文件为httpserver.py中HTTPRequest属性remote_ip)ifconnectionandconnection.xheaders:#SquidusesX-Forwarded-For,othersuseX-Real-Ipself.remote_ip=self.headers.get("X-Real-Ip",self.headers.get("X-Forwarded-For",remote_ip))#AWSusesX-Forwarded-Protoself.protocol=self.headers.get("X-Scheme"...

精彩继续

Javascript截取URL中的域名

通过正则获取,兼容ftp://username:password@格式vargetHostName=function(url){//scheme://[username[:password]@]hostame[:port][/[path][?query][#fragment]]*/vare=newRegExp('^(?:(?:https?|ftp):)/*(?:[^@]+@)?([^:/#]+)'),matches=e.exec(url);returnmatches?matches[1]:url;};

精彩继续

Javascript模拟ASP(.NET)的Request.QueryString获取URL中参数

Javascript获取URL中GET参数一般都是用&把URL拆分成数组,然后再去遍历数组获取参数。今天分析一段统计代码正好看到那段统计代码中模拟了ASP(.NET)Request.QueryString方法来获取URL中的GET参数值。varRequest={QueryString:function(key){varsvalue=window.location.search.match(newRegExp("[\?\&]"+key+"=([^\&]*)(\&?)","i"));returnsvalue?svalue[1]:svalue;}};

精彩继续

Python学习笔记二-函数参数可以用星号+形参名形式

Python函数参数可以用星号+形参名形式(*arg或**arg)方式。其中*arg方式必须在传统参数后边出现,而**arg则必须在*arg后出现。例:deftest(x,y=5,*a,**b):printx,y,a,b函数调用结果:test(1)===>15(){}test(1,2)===>12(){}test(1,2,3)===>12(3,){}test(1,2,3,4)===>12(3,4)test(x=1)===>15(){}test(x=1,y=1)===>11(){}test(x=1,y=1,a=1)===>11(){'a':1}test(x=1,y=1,a=1,b=1)===>11(){'a':1,'b':1}test(1,y=1)===>11(){}test(1,2,y=1)===>出错,说y给赋了多个值test(1,2,3,4,a=1)===>12(3,4){'a':1}...

精彩继续

Javascript获取页面来源(referer)

经常使用其他脚本语言(ASPASP.NETPHP等)获取页面的浏览来源,第一次使用Javascript获取页面的referer。vargetReferrer=function(){varreferrer='';try{referrer=window.top.document.referrer;}catch(e){if(window.parent){try{referrer=window.parent.document.referrer;}catch(e2){referrer='';}}}if(referrer===''){referrer=document.referrer;}returnreferrer;};

精彩继续

坑爹的ASP mod问题

首先提问(ASP问题)Dimstr_genderstr_gender=2Functiontest(str)str=strMod2EndFunctionCalltest(str_gender)现在str_gender的值应该是几?如果你的答案是2那就非常不好意思了,答案是0。asp很诡异的一个问题不是么,俺是经过了血的教训啊…Update@2011-09-07:经高人指点,ASP函数的参数默认是传引用,而不是传值…

精彩继续

yepnope.js教程

yepnope.js是一个超高速的按条件异步加载资源的加载器,允许你只加载使用到的资源(css及js)。yepnope.js的一个典型实例:yepnope({test:Modernizr.geolocation,yep:'normal.js',nope:['polyfill.js','wrapper.js']});此实例表示如果Modernizr.geolocation为真的时候加载normal.js,为假则加载polyfill.js及wrapper.js。yepnope完整语法:yepnope([{test:/*boolean(ish)输入条件*/,yep:/*array(ofstrings)|string-条件为真时加载的资源*/,nope:/*array(ofstrings)|string-条件为假时加载的资源*/,both:/*array(ofstrings)|string-条件无...

精彩继续

更正之前对于yepnope.js的误解

最近看到不少人搜索yepnope.js来到本站,同样也有人搜索LABjs来到本站,而之前俺测试yepnope.js时候在Firebug中看到yepnope会重复加载脚本,所以俺就非常纳闷为什么会有这么多人搜索yepnope.js,特意跑去yepnope.js的github中仔细看了一下相关的issue等,发现之前我的观点是有问题的。按SlexAxton的回答是:yepnope会先将js文件全部加载到缓存中并将要创建element或者img等non-executable的元素创建出来。而可执行的js文件会在执行的时候从缓存中加载,而这一步造成Firebug会显示js文件加载了两次,这样只能是有毫秒级的时间损失完全可以忽略,并不会对时间线有太大的拖长。特此更正把现在用的LABjs暂时替换成了yepnope.js(yepnope.js比较依赖文件缓存,所以有可能还会换回LABjs)。之前的LAB...

精彩继续