新风格的类引发的属性访问问题

标签:Python

Python里有个内建的property函数,可以把函数封装成属性,这是一个非常不错的功能。不过假如我希望这个函数只被调用一次,以后访问属性时就直接访问上次的结果,而不需要重新调用一次函数,那就有些麻烦了。

Sikuli:截图也能编程

标签:Python

前几天在cnBeta看到一个使用截图来编程的新语言:Sikuli。不过没放出地址,我也懒得去看。

今天在Google Groups的Python论坛里看到有人说Sikuli是他见过最酷的项目,于是点了进去,看了首页的一段youtube演示视频,才发现这就是前几天看到的那个。

不过与其说是语言,不如说是一个工具或库。它是用Jython实现的,可以使用Jython的API,而最强大的功能就是识别截图了。只是感觉不像cnBeta上吹得那么强大,充其量就是一个加强版的按键精灵…

动态设置变量名

标签:Python

如果要写一个程序,让x1为1,x2为2,然后直到x100为100,你会怎么做?

在C这种静态语言里,变量名这个标识符实际上会被编译器直接翻译成内存地址,所以除了手动设置每个变量的值以外,没办法做到这点。而Python这种动态语言则是可以做到的。

最容易想到的自然是eval,但是实际上根本不需要这种危险的东西,因为Python的变量名就是一个字典的key而已。要获取这个字典,直接用locals和globals函数即可。

用Descriptor实现另一种风格的Decorator

标签:Python

之前我曾写过《在Python中实现Decorator模式》,里面展示的例子都是一个函数封装另一个函数,然后返回封装后的函数,即:
def decorator(func):
	def wrapper(arg):
		#做另一些事
		return func(arg)
	return wrapper

@decorator
def f(param):
	#做一些事
虽然这就是正统的写法,但对于不太了解闭包的人来说,那个wrapper太难懂了,就会有种Decorator很恐怖的印象。

用Python生成暴力破解字典

标签:Python

事先声明一下,我只是一时兴起,绝对没有去做和谐的事,各位也请自重=。=

其实暴力破解字典就是将可输入的字符进行全排列,是非常简单的方法,只不过用C语言写起来很繁琐,因此我想到了Python。

Python 2.7 alpha 1发布

标签:Python

自从上次下载页被GFW后,目前Python全站都被GFW了,我只想说操你妈的GFW工作人员,祝你们全家在新的一年里,全身长满菊花。
会翻墙的可以去下载Python 2.7,我只介绍一些改动。

强大的Python Shell:IPython

标签:Python

以前一直使用Python自带的交互式Shell,感觉也还够用,至少比Ruby好;不过今天用了下IPython,发现它实在太强了,支持彩色高亮显示、代码补完、魔术函数、宏、编辑和保存文件、调用操作系统的Shell命令等功能。

« 看看还有什么好玩意