猎豹中的Un / bound方法

时间:2010-07-03 17:44:10

标签: python cheetah

有没有办法在猎豹中声明静态方法? IE

snippets.tmpl

#def address($address, $title)
<div class="address">
<b>$title</h1></b>
#if $address.title
$address.title <br/>
#end if
$address.line1 <br/>
#if $address.line2
$address.line2 <br/>
#end if
$address.town, $address.state $address.zipcode
</div>
#end def

....

other snippets

other.tmpl

#from snippets import *

$snippets.address($home_address, "home address")

此代码报告此错误:NotFound: cannot find 'address'。猎豹正在将其编译为绑定方法,natch:

snippets.py

class snippets(Template):

    ...

    def address(self, address, title, **KWS):

有没有办法声明静态方法?如果没有,有哪些替代方法可以实现这样的(片段库)?

1 个答案:

答案 0 :(得分:0)

This page似乎有一些相关信息,但我现在无法自己尝试,抱歉。

具体来说,你应该能够做到:

#@staticmethod
#def address($address, $title)

......让它发挥作用。

(如果您不知道,staticmethod是一个内置函数,可以创建一个...静态方法:)它最常用作decorator。所以我通过Googling“cheetah staticmethod”找到了该页面。)