2010-07-03 3 views
0

Existe-t-il un moyen de déclarer des méthodes statiques dans le guépard? IEMéthodes non liées dans Cheetah

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") 

Ce rapport de code d'erreur: ce NotFound: cannot find 'address'. Cheetah est compilez comme méthode liée, natch:

snippets.py

class snippets(Template): 

    ... 

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

Est-il possible de déclarer des méthodes statiques? Si non, quelles sont les autres façons d'implémenter quelque chose comme ça (une bibliothèque de snippets)?

+0

syntaxe soulignant pour guépard n'est pas génial ... – colinmarc

Répondre

0

This page semble avoir des informations pertinentes, mais je ne suis pas en mesure de l'essayer moi-même en ce moment, désolé.

Plus précisément, vous devez simplement être en mesure de le faire:

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

... et le faire fonctionner.

(Si vous ne le saviez pas, staticmethod est une fonction intégrée qui crée une ... méthode statique :) Elle est généralement utilisée comme decorator. Donc, j'ai trouvé cette page par Googling "cheetah staticmethod".)

+0

ah, ma recherche de 'méthodes statiques guépard' ne m'a pas eu que. Je vais tester ça – colinmarc

+0

Ouais, ça tend à se rétrécir considérablement si vous utilisez le nom de la fonction plutôt que la phrase. – detly

Questions connexes