// 原题
//($=[$=[]] [(__=!$+$)[_=-~-~-~$]+({}+$)[_/_]+($$=($_=!''+$)[_/_]+$_[+$])])()[__[_/_]+__[_+~$]+$_[_]+$$](_/_);
////----------------------------------------------------------
//// 第一步
////----------------------------------------------------------
///x = func_0()[a](b)
//
//func_0 = ( $=[$=[]] [(__=!$+$)[_=-~-~-~$]+({}+$)[_/_]+($$=($_=!''+$)[_/_]+$_[+$])] );
//a = __[_/_]+__[_+~$]+$_[_]+$$;
//b = _/_;
//
////----------------------------------------------------------
//// 第二步
////----------------------------------------------------------
//func_0 = ( $ = [c][d] );
//c = ( $=[] );
//d = ( (__=!$+$)[_=-~-~-~$]+({}+$)[_/_]+($$=($_=!''+$)[_/_]+$_[+$]) )
//
//
//func_0 = ( $ = [[]][d] );
//d = ( (__="false")[_=3]+"[object Object]"[1]+($$=($_="true")[1]+$_[0]) );//__="false",_=3,$_="true"
//d = ( "s"+"o"+($$="r"+"t") );//$$="rt"
//d = "sort";
//func_0 = ( $=[[]]["sort"]) = [[]]["sort"]
//
////----------------------------------------------------------
//// 第三步
////----------------------------------------------------------
//a = "false"[1] + "false"[3+(-1)] + "true"[3] + "rt";
//a = "a"+"l"+"e"+"rt";
//b = 1;
//
////----------------------------------------------------------
//// 第四步
////----------------------------------------------------------
//x = func_0()["alert"](1);
x = ($=[[]]["sort"])()["alert"](1);
x = ($=Array.prototype.sort)()["alert"](1);
在python中,我们习惯用dict来配置数据,如下:
Config = {
"version" : "1.0",
"author" : "bravf"
}
并且以Config["version"]的方式来访问,好吧,搞Js的同学表示他太罗嗦了,Js可以Config.version,在python中这样访问会抛出异常:"'dict' object has no attribute 'version'", 看来,python中的"."运算符并不能用来访问键值对,只能访问一个类上的自有属性。那么转化一下吧:
#--------------------------------------------------------------------
# 说明:把dict形式的配置改成基于class的属性访问
# 好处:用"."运算符来访问
#--------------------------------------------------------------------
class EasyObj(object):pass
def DictToClass(_dict):
obj = EasyObj()
for m,n in _dict.iteritems() : setattr(obj,m,n)
return obj
#end def
没多大的用处,只是希望能少写一些字符。
---------------------------分隔符-------------------------------------------------
好吧,上面的代码遇到这样的情况就歇菜了:
Config = {
"version" : "1.0",
"author" : "bravf",
"account" : {
"user" : "bravf",
"pwd" : "bravf",
"language" : ["英语","日语"]
},
"a" : {
"a_0" : "a_0",
"a_1" : "a_1",
"a_2" : {
"a_2_0" : "a_2_0"
}
}
}
因为没有深度遍历,加上递归搞定他:
#--------------------------------------------------------------------
# 说明:把dict形式的配置改成基于class的属性访问
# 好处:用"."运算符来访问
#--------------------------------------------------------------------
class EasyObj(object):pass
def DictToClass(_dict):
obj = EasyObj()
for m,n in _dict.iteritems() :
if type(n) == type({}) : n = DictToClass(n)
setattr(obj,m,n)
#end for
return obj
#end def
var fn = function(s){
return s.split("").reverse().join("").replace(/(\w{3})(?!$)/g,"$1,").split("").reverse().join("");
};
今天群里有人问,就顺便写了个。
得到当前py文件的父目录绝对路径:
root = "/".join(os.path.abspath(os.path.dirname(sys.argv[0])).split("/")[:-1])+"/"
摘要: 这东西,低版本浏览器没有。所以: var JS = function(){ //花未眠 //bravfing@126.com //2011.8.19 var _toStr = function(obj){ var type = Object.prototype.toString.call(obj).slice(8,-1) , rs; //如果是html节点(不完全判断,可伪造) if(obj.nodeType!=null){ return "HTMLNODE" } ...
阅读全文
摘要: 本文将从头实现一个支持"加、减、乘、除、小括号"的四则运算器,语言用大众化的js,当然并不会使用动态语言的捷径(eval等)。-----------------------------------------------------------------------------------------------------------现给出一个四则运算式:exp = 1 + 2 * ((3+9) * 5 - 7) /3-----------------------------------------------------------------------------
阅读全文
摘要: 原链接:http://www.cnblogs.com/JeffreyZhao/archive/2009/10/12/code-for-fun-tokenizer.html今天偶然翻起,又细读了一遍,包括后面的2篇答案解析:http://www.cnblogs.com/jeffreyzhao/archive/2009/10/21/code-for-fun-tokenizer-answer-1.html"http://www.cnblogs.com/JeffreyZhao/archive/2009/10/22/code-for-fun-tokenizer-answer-2-fsharp.
阅读全文
摘要: 原文:http://www.cnblogs.com/xyxiong/archive/2011/05/13/2045579.html首先下载相关安装文件,地址如下:PHPhttp://windows.php.net/download/apachehttp://archive.apache.org/dist/httpd/binaries/win32/apache_2.2.9-win32-x86-no_ssl-r2.msimysqlhttp://dev.mysql.com/downloads/mysql/phpmyadmin3.3.10 FINA http://www.crsky.com/soft/
阅读全文
摘要: threading.Thread
Thread 是threading模块中最重要的类之一,可以使用它来创建线程。有两种方式来创建线程:一种是通过继承Thread类,重写它的run方法;另一种是创建一个threading.Thread对象,在它的初始化函数(__init__)中将可调用对象作为参数传入。下面分别举例说明。先来看看通过继承 threading.Thread类来创建线程的例子:
阅读全文