从django的manual 当中看到的
def current_datetime(request):
now = datetime.datetime.now()
return render_to_response('current_datetime.html', {'current_date': now})
很多时候,就像在这个范例中那样,你发现自己一直在计算某个变量,保存结果到变量中
(比如:前面代码中的 now ),然后将这些变量发送给模板。特别懒的程序员可能注意到给
这些临时变量 和 模板变量命名显得有点多余。不但多余,而且还要进行额外的键盘输入。
如果你是个喜欢偷懒的程序员并想让代码看起来更加简明,可以利用 Python 的内建函数
locals() 。它返回的字典对所有局部变量的名称与值进行映射。因此,前面的视图可以重写
成下面这个样子:
def current_datetime(request):
current_date = datetime.datetime.now()
return render_to_response('current_datetime.html', locals())
而且,
虽然locals()返回的是一份拷贝,但是依然可以往里面赋值,就像使用map一样,
l = locals()
l["x"] = 111
l["y"] = 222
尽管不能print x,print y, 但是
需要的时候调用那个假的x,或者y的时候, 写上locals()就行比如print locals(),就能看到x,y了