Python Jinja2中的.render()是否与同名函数冲突?为什么?
我正在学习Udacity的web开发课程,在该课程中,讲师将以下代码用于其处理程序类:Python Jinja2中的.render()是否与同名函数冲突?为什么?,python,google-app-engine,jinja2,Python,Google App Engine,Jinja2,我正在学习Udacity的web开发课程,在该课程中,讲师将以下代码用于其处理程序类: 如您所见,他在render_str中调用.render**params。我最近发现.render是一个内置的Jinja2函数,因此它提出了一个问题:为什么内置的.render与自定义render不冲突:?如何将函数命名为与内置函数相同的名称,并且在同一类中使用它们时不会遇到问题?这不是函数,这是类方法。您有self.render和t.render。两个名称相同但属于不同对象的方法。好的,我明白了,如果我想调用
如您所见,他在render_str中调用.render**params。我最近发现.render是一个内置的Jinja2函数,因此它提出了一个问题:为什么内置的.render与自定义render不冲突:?如何将函数命名为与内置函数相同的名称,并且在同一类中使用它们时不会遇到问题?这不是函数,这是类方法。您有self.render和t.render。两个名称相同但属于不同对象的方法。好的,我明白了,如果我想调用第三个方法render,我会在它前面加上self.render。否则,渲染默认为内置的Jinja方法。谢谢各位。那很容易。
class Handler(webapp2.RequestHandler):
def write(self, *a, **kw):
self.response.out.write(*a, **kw)
def render_str(self, template, **params):
t = jinja_env.get_template(template)
return t.render(**params)
def render(self, template, **kw):
self.write(self.render_str(template, **kw))