仅在Python中获取函数作用域的本地字典

Alb*_*chy 0 python django scope locals django-views

我一直在这种情况下结束,我想使用字典非常像'locals'给出的字典,但只包含函数范围有限的变量.有没有办法在python中执行此操作?

更多关于我为什么要这样做的事情:我正在玩Django,当我去给我的模板上下文时,我被迫要么手动制作字典(违反DRY原则)要么传入本地人()然后需要更多的条目(浪费).是否有一些我缺少的django可以减轻python级解决方案的需要?

澄清:

所以,我反复击中的情况就是我所拥有的:

@render_to('my_template.html') 
def myview(request): 
    var1 = #blahblah 
    var2 = #... 
    # do stuff with vars 
    return {'var1': val1,'var2':val2} 
Run Code Online (Sandbox Code Playgroud)

因此,我不会重复这些变量和命名约定,而是:

@render_to('my_template.html') 
def myview(request): 
    var1 = #blahblah 
    var2 = #... 
    # do stuff with vars 
    return locals() 
Run Code Online (Sandbox Code Playgroud)

我觉得它更干净,但我知道它有点马虎,因为当地人()中有大约30个条目然后我真的需要.

Dan*_*man 5

我不确定我是否同意制作字典是违反DRY的,但如果你真的不想重复任何事情,你可以在视图的顶部定义一个"上下文"字典并使用字典键而不是整个视图中的变量.

def my_view(request):
    context = {}
    context['items'] = Item.objects.all()
    context['anothervalue'] = context['items'][2].name
    return render_to_response('template.html', context)
Run Code Online (Sandbox Code Playgroud)