如何检查mako模板中的instanceof?

时间:2013-09-03 19:25:25

标签: python mako

我有一个变量myvariable,我想在Mako模板中使用。我希望能够在做任何事情之前以某种方式检查它的类型。检查那种信息的语法是什么?我知道python有typeof和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

1 个答案:

答案 0 :(得分: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"