今天收到 SPE 的作者 stani 的信,说是联合编辑器项目的网站和 maillist 建立.网站地址在这里.好象是建立在 Stani 自已的网站上.网站使用plone.不过我不太习惯zwiki的语法,已经适应了moinmoin的语法.而Trac与Moin是相同的.
至于项目的名字看意思是叫作:pyxides.不管它,叫什么都无所谓.首页的左上角有许多的小图标,仔细看都是一些编辑器的图标.NewEdit 的蝴蝶也在上面.
先看一看大家的讨论吧.
limodou是一个程序员,他关心的焦点是Python, DocBook, Open Source …
今天收到 SPE 的作者 stani 的信,说是联合编辑器项目的网站和 maillist 建立.网站地址在这里.好象是建立在 Stani 自已的网站上.网站使用plone.不过我不太习惯zwiki的语法,已经适应了moinmoin的语法.而Trac与Moin是相同的.
至于项目的名字看意思是叫作:pyxides.不管它,叫什么都无所谓.首页的左上角有许多的小图标,仔细看都是一些编辑器的图标.NewEdit 的蝴蝶也在上面.
先看一看大家的讨论吧.
仔细看 django 的代码可以发现许多的好东西.这不本文将讲一个curry的函数.不知道怎么翻译为好.它位于 django/utils/functional.py.函数的定义为:
def curry(*args, **kwargs):
def _curried(*moreargs, **morekwargs):
return args[0](*(args[1:]+moreargs), **dict(kwargs.items() + morekwargs.items()))
return _curried
它的工作就是一个decorator的方式.它的主要作用是将原函数预置一些参数,然后返回一个新函数.这样新函数只需要传入原来没有预设的参数.这样在某些情况下可以简化一些处理.特别是有时为了通用我们定义了一个函数有许多的参数,但调用者却只使用几个参数进行调用,特别多的是在GUI编程中的事件处理方法中.为了在事件处理中使用这个多参数的函数,使用curry可以解决这个问题.
举例如下:
>>> from django.utils.functional import curry
>>> def a(a, b, c):
… print a, b, c
>>> b = curry(a, ‘a’, ‘b’)
>>> b(‘c’)
a b c
第一个参数需要是一个函数对象,后面是预设的参数值,可以是tuple参数和关键字参数.
不过它使用起来还是有一定的限制,主要是它的参数处理.从上面的源代码可以看到,它对于tuple参数和字典参数是不能混在一起的.特别是对于tuple参数,它是采用追加的方法,因此预设参数时只能是从前向后,中间不能跳跃.比如你想预设上面的a, c参数,但是做不到,其实还是预设了a,b参数.而对于字典参数却没有关系.
这里要注意的是,所谓字典参数就是指有缺省值的参数.
django 最近的变化不可谓不大,这都是托 pycon 的福.许多东西在改进.下面把我了解的一些说一下,等版本正式稳定了,教程都要改了:)
还有许多的变化,有些我也不是很清楚.每天 svn 的修改都非常多.