定义全局变量的方法Python,Python中的全局变量

  定义全局变量的方法Python,Python中的全局变量

  在上一节中,我们用render_to_response()进一步简化了视图层。让我们再来看看我们最后一次对current_datetime的赋值:

  定义当前日期时间(请求):

  now=datetime.datetime.now()

  返回render _ to _ response( current _ datetime . html ,{current_date: now})

  你有没有发现自己一直在计算一个变量?将结果保存到变量中(如前面代码中所示),然后将这些变量发送到模板。一个变量就可以了。如果有十几个或者几十个变量呢?喜欢偷懒的程序员应该注意到,一直给临时变量和临时模板命名有点多余。不仅多余,还需要额外的输入。

  这时,你可以利用Python的内置函数locals()。它返回的字典映射所有局部变量的名称和值。因此,前面的视图可以改写如下:

  定义当前日期时间(请求):

  current _ date=datetime . datetime . now()

  返回render _ to _ response( current _ datetime . html ,locals())

  这里,我们没有像以前那样手动指定上下文字典,而是传入了locals()的值,它包含了函数执行到这个时间点时定义的所有变量。因此,我们将now变量重命名为current_date,因为这是模板期望的变量名。

  当使用locales()时,应该注意它将包括所有局部变量,这可能比您希望模板访问的要多。甚至你没有想象到的变量也会被发送到模板中。在前面的示例中,locals()也包含请求。如何选择这个取决于你的应用。

  在这个例子中,locals()并没有带来太大的改进,只是一个小技巧,但是如果有多个模板变量需要定义,而你又想偷懒的话,这个技巧可以减少一些键盘输入。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: