2013-09-03 5 views
1

У меня есть переменная myvariable, которую я хочу использовать в шаблоне Mako. Я хочу иметь возможность как-то проверить его тип, прежде чем что-либо делать с ним. Каков синтаксис для проверки такой информации? Я знаю, что у python есть typeof и instanceof, но есть ли какой-то эквивалент в Mako или как вы это сделаете?Как проверить instanceof в шаблоне mako?

псевдокод ниже:

% if myvariable == 'list': 
// Iterate Throuh the List 
    %for item in myvariable: 
     ${myvariable[item]} 
    %endfor 
%elif variabletype == 'int': 
// ${myvariable} 

%elif myvariable == 'dict': 
// Do something here 

ответ

2

Вы можете использовать isinstance():

>>> from mako.template import Template 
>>> print Template("${isinstance(a, int)}").render(a=1) 
True 
>>> print Template("${isinstance(a, list)}").render(a=[1,2,3,4]) 
True 

UPD. Вот использование внутри if/else/endif:

from mako.template import Template 
t = Template(""" 
% if isinstance(a, int): 
    I'm an int 
% else: 
    I'm a list 
% endif 
""") 


print t.render(a=1) # prints "I'm an int" 
print t.render(a=[1,2,3,4]) # prints "I'm a list" 

 Смежные вопросы

  • Нет связанных вопросов^_^