2

我有一个变量 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
4

1 回答 1

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"
于 2013-09-03T19:29:35.047 回答