为什么未定义的变量比 mako 模板中的数字大?
我使用了一个名为x
的变量,但x
没有定义,并使用x
与mako模板中的数字进行比较:
%if x>5:
<h1>helloworld</h1>
%endif
以及为什么这句话不会导致异常或错误?但是当我想打印出来时:
%if x>5:
<h1>${x}</h1>
%endif
它引起了异常。为什么?
这是在马科。为什么我在IPython中不能使用这句话?因为如果我在 IPython 中使用未定义的变量,它会告诉我变量突然没有定义。
I use a variable called x
,the x
is not defined, and use x
to compare with a number in mako template:
%if x>5:
<h1>helloworld</h1>
%endif
And why this sentence not cause an exception or an error? But when I want to print this out:
%if x>5:
<h1>${x}</h1>
%endif
it caused an exception. Why?
This is in mako. Why can't I use this sentence in IPython? Because if I use an undefined variable in IPython, it will tell me variable is not defined suddenly.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
实现了
__nonzero__
方法:这是因为
mako
默认情况下使用Undefined
对象,该对象仅在渲染时失败,但可以在布尔表达式中使用,因为 使用即使在布尔表达式中也会失败的未定义值,您可以使用strict_undefined
参数,如下所示:请注意,
strict_undefined
在mako.template.Template
中都可用代码>和mako.lookup.TemplateLookup。文档中的描述是:
That's because
mako
uses by default anUndefined
object that only fails when rendered, but can be used in boolean expressions because implements the__nonzero__
method:To use an undefined value that fails even in boolean expressions, you can use
strict_undefined
argument as follows:Note that
strict_undefined
is available in bothmako.template.Template
andmako.lookup.TemplateLookup
.The description from the documentation is: