12 2011 档案
摘要: 一 闭包来自wiki:闭包(Closure)是词法闭包(Lexical Closure)的简称,是引用了自由变量的函数。这个被引用的自由变量将和这个函数一同存在,即使已经离开了创造它的环境也不例外。所以,有另一种说法认为闭包是由函数和与其相关的引用环境组合而成的实体。在一些语言中,在函数中定义另一个函数时,如果内部的函数引用了外部的函数的变量,则可能产生闭包。运行时,一旦外部的 函数被执行,一个闭包就形成了,闭包中包含了内部函数的代码,以及所需外部函数中的变量的引用。闭包的用途:因为闭包只有在被调用时才执行操作,所以它可以被用来定义控制结构。多个函数可以使用一个相同的环境,这使得它们可以通过改阅读全文
摘要: 一 装饰器decoratordecorator设计模式允许动态地对现有的对象或函数包装以至于修改现有的职责和行为,简单地讲用来动态地扩展现有的功能。其实也就是其他语言中的AOP的概念,将对象或函数的真正功能也其他辅助的功能的分离。二Python中的decoratorpython中的decorator通常为输入一个函数,经过装饰后返回另一个函数。 比较常用的功能一般使用decorator来实现,例如python自带的staticmethod和classmethod。装饰器有两种形式:@Adeffoo():pass相当于:deffoo():passfoo=A(foo)第二种为带参数的:@A(arg阅读全文
摘要: 通常地我们要在不同平台间共享文件,samba,ftp,cifs,ntfs的设置都是有点复杂的, 我们可以使用python提供的httpserver来提供基于http方式跨平台的文件共享。一 命令行启动简单的httpserver进入到web或要共享文件的根目录,然后执行(貌似在python32中此module不存在了):python -m SimpleHTTPServer 8000然后你就可以使用http://你的IP地址:8000/来访问web页面或共享文件了。二 代码启动httpserversimplehttpservertest.pyimportsysimportlocaleimporth阅读全文
摘要: python引用变量的顺序: 当前作用域局部变量->外层作用域变量->当前模块中的全局变量->python内置变量一 globalglobal关键字用来在函数或其他局部作用域中使用全局变量。但是如果不修改全局变量也可以不使用global关键字。gcount=0defglobal_test():print(gcount)defglobal_counter():globalgcountgcount+=1returngcountdefglobal_counter_test():print(global_counter())print(global_counter())print(g阅读全文
摘要: 1) os.system()此方法启动新的进程来执行指定的外部命令,但是不能返回外部命令的输出,外部命令任然输出到标准输出。此函数的返回值与所运行的系统有关,在windows系统返回外部命令的返回值,在Linux系统中,返回值与函数wait()类似,进程kill的信号和返回值组成的16位值。例如:在windows上执行:os.system("tasklist")在Linux上执行:os.system("ps -aux")2) os.fork() + os.exec*()启动新的进程,然后在新进程环境中执行外部程序。os.fork()方法只在Linux环境阅读全文
摘要: 原文:http://wiki.python.org/moin/HowTo/SortingPython list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列。1)排序基础简单的升序排序是非常容易的。只需要调用sorted()方法。它返回一个新的list,新的list的元素基于小于运算符(__lt__)来排序。>>>sorted([5,2,3,1,4])[1,2,3,4,5]你也可以使用list.sort()方法来排序,此时list本身将被修改。通常此方法不如sorted()方便,但是如果你不需要保留原来的lis阅读全文
摘要: Standard Generalized Markup Language (SGML)即标准通用标记语言Hypertext Markup Language (HTML)超文本标识语言Extensible Markup Language (XML)可扩展标识语言SGML,HTML,XML都可以使用以下的SAX和DOM方式来解析:SGML是现时常用的超文本格式的最高层次标准,是可以定义标记语言的元语言,甚至可以定义不必采用< >的常规方式。HTML和XML都是衍生于SGML,HTML是SGML的一个应用,不能用来定义其他的标记语言。XML可以被认为是SGML的一个子集,XML的产生就是阅读全文
摘要: SAX是一种基于事件驱动的API。利用SAX解析XML文档牵涉到两个部分:解析器和事件处理器。解析器负责读取XML文档,并向事件处理器发送事件,如元素开始跟元素结束事件;而事件处理器则负责对事件作出相应,对传递的XML数据进行处理。实例:importsys,stringfromxml.saximporthandler,make_parserclassTestHandler(handler.ContentHandler):def__init__(self):passdefstartDocument(self):print"DocumentStart..."defendDocu阅读全文
摘要: 一 batch 与 shell中目录及文件:C:\TESTFOLDER\TEST├─Test2└─Test3 test.txt删除目录及其下的所有文件:rmdir /S /Q c:\TestFolder\test删除所有目录下的文件,但是目录结构不能被删除:del /F /S /Q c:\TestFolder\test\*Linux类似的命令为:rm /rf /home/aaa/test二 python中:注意如果有错误会有异常抛出,需要处理异常。1)删除文件且不支持通配符: os.remove()2) 删除空的目录: os.rmdir()3) 删除空的目录及子目录: os.remove...阅读全文
摘要: 一 使用devenv来build单个projectdevenv是VisualStudio的可执行程序,一般安装在“C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE”下。用来在命令行或GUI方式运行VisualStudio。其中devenv.com是命令行程序,devenv.exe是GUI的程序。默认地当你调用devenv的时候其实是启动devenv.com,除非你显示地调用devenv.exe才会启动GUI的VisualStudio。使用devenv来build一个.sln的实例:devenv d:\Build\My阅读全文
摘要: 一 .NET代码混淆.NET代码混淆技术:Symbol renamingString encryption and compressionResource encryption and compressionConstant literals pruningMethod signatures overload inductionClass hierarchy linerizationCode control flow obfuscationAssemblies merging and embeddingXML documentation filter免费的.NET代码混淆工具:Eazfusca阅读全文
摘要: 获得当前机器的名字:来自:http://tony413.iteye.com/blog/395177defhostname():sys=os.nameifsys=='nt':hostname=os.getenv('computername')returnhostnameelifsys=='posix':host=os.popen('echo$HOSTNAME')try:hostname=host.read()returnhostnamefinally:host.close()else:return'Unkwonhostnam阅读全文
摘要: 1) Executor_Number的作用?executor number控制jenkins在此slave上并行执行的最大数量 。 一般设置为此slave上cpu的核数。 也可以将master的值设置为0来阻止在master机器上做build。2) Manage Jenkins -> config System - > System Message ?用来告诉用户此jenkins所服务的部门或相关的链接信息。例如:3) 开源产品对jenkins使用的实例?https://builds.apache.org/是apache software foundation使用Jenkins来自阅读全文
摘要: 正则表达式 实例1) 不能是某些字符中之一[]用来表示匹配多个字符之一。[^]与[]相反,表示匹配与多个字符中的任一个都不匹配。:下图中,H是第一个与abcd都不匹配的字符。2) 匹配多个字符串中的2个或者一个匹配2次(|||) 用来表示多个字符串中的一个。(|||){n}用来表示多个字符串中的n个。:下图中,匹配的2个字符可以是同一字符串,也可以不是,例如abab,或efcd都匹配(ab|cd|ef){2}。3)匹配多个字符串中的一个字符串2次\number用来表示前面的()对应的group的匹配的结果。:下图中只能是svsv,abab或cdcd才匹配(sv|ab|cd)\1{1}, sva阅读全文
摘要: 一 Open Build Service(OBS)主页:http://openbuildservice.org/Open Build Service(OBS)是开放的完整的软件发布开发平台。他提供了基础架构来创建软件发布包,它支持广泛的操作系统和硬件架构,同时也支持插件(add-ons),应用镜像(appliance images)或整个Linux的发布包。 OBS提供了工具集来协作地工作,支持访问权限,合并请求和审查功能。用户可以通过web接口来方便地访问OBS,同时OBS也支持命令行或API访问。 OBS不是使用不同硬件的compiler farms来为不同架构或多种Linux(Fedor阅读全文