标签: locals

ExpressJS:app.local和res.local有什么区别?

我正在尝试学习Express,在我的应用程序中,我有中间件将会话对象从Request对象传递给我的Response对象,以便我可以在我的视图中访问它:

app.use((req, res, next) ->
  res.locals.session = req.session
  next()
)
Run Code Online (Sandbox Code Playgroud)

但app.locals也适用于视图吗?如果我这样做也一样app.locals.session = req.session吗?对于各种类型的东西是否有约定app.localsres.locals用于?

我也搞不清楚的区别是什么之间res.render()res.redirect()?什么时候应该使用?

谢谢阅读.任何与Express相关的帮助表示赞赏!

request locals node.js express

9
推荐指数
2
解决办法
5390
查看次数

用于包含范围的Python locals()

TL; DR:我想要一个在包含范围内查找的locals().

大家好.

我正在向一些化学家朋友讲授Python编程课程,我想确保我真正了解范围.

考虑:

def a():
    x = 1
    def b():
        print(locals())
        print(globals())
    b()
Run Code Online (Sandbox Code Playgroud)

Locals打印一个空的环境,globals打印通常的全局变量.如何访问存储x的环境?很明显,口译员知道它,因为我可以参考它.

相关:什么时候发生范围?仅当包含x = 3时,a = x + 2上的以下nameErrors:

def a():
    x = 1
    def b():
        a = x+2
        x = 3
    b()
Run Code Online (Sandbox Code Playgroud)

如果您注释掉x = 3,则代码可以正常工作.这是否意味着python在解释代码之前会对代码进行词法范围传递?

python environment scope locals python-3.x

8
推荐指数
2
解决办法
4918
查看次数

在函数中调用locals()不直观?

这可能是基本的,但可以帮助我理解命名空间.一个很好的解释可能会逐步执行函数定义执行时发生的事情,然后执行函数对象后发生的事情.递归可能使事情变得复杂.

结果对我来说并不明显; 我原以为:

locals_1将包含var; locals_2将包含var和locals_1; 和locals_3将包含var,locals_1和locals_2

# A function calls locals() several times, and returns them ...
def func():
  var = 'var!'
  locals_1 = locals()
  locals_2 = locals()
  locals_3 = locals()
  return locals_1, locals_2, locals_3

# func is called ...
locals_1, locals_2, locals_3 = func()

# display results ...
print 'locals_1:', locals_1
print 'locals_2:', locals_2
print 'locals_3:', locals_3
Run Code Online (Sandbox Code Playgroud)

结果如下:

locals_1: {'var': 'var!', 'locals_1': {...}, 'locals_2': {...}}
locals_2: {'var': 'var!', 'locals_1': {...}, 'locals_2': {...}}
locals_3: {'var': 'var!', …
Run Code Online (Sandbox Code Playgroud)

python locals

6
推荐指数
2
解决办法
1663
查看次数

为什么在python中修改locals是个坏主意?

与此相关的答复这里.当地人的文件在这里.

文档提到字典不应该改变,不确定它意味着什么但是locals()适用于数据不会改变的实验室报告,例如在测量中?

python locals

5
推荐指数
3
解决办法
1897
查看次数

Pug / Jade获取给定模板中的所有变量

对于给定的Jade / Pug模板,我想获取模板中出现的所有变量的列表。

我的动机如下:在我的软件中,使用了不同的模板来生成一些HTML代码段。根据给定的上下文(即,给出了某些变量的值),我只建议那些模板,其中可以分配模板中的所有变量。

示例:对于这样的模板myTemplate

html
    head
        title= myTitle
    body
        h1 #{value.headline}
        p #{paragraph.text}
Run Code Online (Sandbox Code Playgroud)

我想得到一些这样的输出:

var variableNames = extractVariableNamesFromTemplate('myTemplate');
// variableNames = [ 'myTitle', 'value.headline', 'paragraph.text' ]
Run Code Online (Sandbox Code Playgroud)

是否有可用的现成产品?优选地,一种解决方案将考虑所有特定于语言的特征,例如包括,扩展等。

templates locals pug

5
推荐指数
1
解决办法
894
查看次数

Python - locals()和闭包

我找不到这种行为的充分解释.

>>> def a():
...     foo = 0
...     print locals()
...     def b():
...         print locals()
...     b()

>>> a()
{'foo': 0}
{}
Run Code Online (Sandbox Code Playgroud)

但:

>>> def a():
...     foo = 0
...     print locals()
...     def b():
            foo
...         print locals()
...     b()

>>> a()
{'foo': 0}
{'foo': 0}
Run Code Online (Sandbox Code Playgroud)

我理解在第二种情况下有一个闭包,但我找不到实际是什么以及在什么条件下应该返回函数的详细描述locals().

python closures locals

4
推荐指数
2
解决办法
407
查看次数

在早期C中开始声明所有范围本地的编译含义?

我记得听说在块的开头排列所有范围成员不再推荐使用C和C++,但这是否意味着它在生成代码时会以某种方式阻碍编译器,或者只是不再需要这样做,因为它并不总是方便吗?如果本地化是按需声明的话,AKA是否更有效地使编译器生成最佳分配?

c c++ instantiation locals compiler-optimization

4
推荐指数
1
解决办法
156
查看次数

按变量声明的顺序检索locals() - python

例如,

a = 1

b = 2 

c = 3
Run Code Online (Sandbox Code Playgroud)

打电话的时候locals(),我明白了

{ 'a': 1, 'c': 3, 'b': 2, '__builtins__': <module '__builtin__' (built-in)>, '__package__': None, '__name__': '__main__', '__doc__': None }
Run Code Online (Sandbox Code Playgroud)

如何从locals()中检索局部变量作为我定义的顺序?

python locals

4
推荐指数
1
解决办法
674
查看次数

使用globals()创建类对象

我是编程的新手,所以请不要因为提出愚蠢的问题而杀了我.我一直在努力理解Python中的所有类业务,我到了无法通过谷歌找到我的问题的答案.

在我的程序中,我需要根据函数返回的字符串从其他类中调用一个类.我发现了两种解决方案:一种是使用getattr(),另一种是使用globals()/ locals().

决定采用第二种解决方案并使其正常工作,但我真的不明白它是如何工作的.

所以有代码示例:

class Test(object):
    def __init__(self):
        print "WORKS!"

room = globals()['Test'] 
room()
Run Code Online (Sandbox Code Playgroud)

type(room()) 得到:

<class '__main__.Test'>
Run Code Online (Sandbox Code Playgroud)

type(room) 得到:

<type 'type'> # What????
Run Code Online (Sandbox Code Playgroud)

它看起来像是room()一个类对象,但不应该room代替room()

请帮助我,因为如果我编写一些我不了解的代码,这有点傻.

python locals globals

3
推荐指数
1
解决办法
109
查看次数

locals().update(字典)不会添加所有变量

我一直在使用字典对象加载变量,但值会更新.我在这里错过了什么?

assert "run_LMM" in all_variables.keys()
locals().update(all_variables)
assert "run_LMM" in locals()
Run Code Online (Sandbox Code Playgroud)

最后一行是我得到一个断言错误.这是怎么回事?

python locals

3
推荐指数
1
解决办法
2277
查看次数

在emacs中设置每个项目的缩进变量

我的emacs设置为全局使用2个空格进行缩进:

(setq-default indent-tabs-mode nil)
(setq tab-width 2)
(setq js-indent-level 2)
(setq css-indent-offset 2)
Run Code Online (Sandbox Code Playgroud)

但我想贡献一个web项目(主要是html,css和js),它使用4个空格进行缩进.所以我想.dir-locals.el在项目目录中设置一个文件.该文件具有以下设置(随add-dir-local-variable命令添加):

((nil . ((tab-width . 4)
         (js-indent-level . 4)))

;;; Directory Local Variables
;;; See Info node `(emacs) Directory Variables' for more information.

((js-mode
  (tab-width . 4)))
;;; Directory Local Variables
;;; See Info node `(emacs) Directory Variables' for more information.

((js-mode
  (js-indent-level . 4)))
;;; Directory Local Variables
;;; See Info node `(emacs) Directory Variables' for more information.

((html-mode
  (tab-width . 4))) …
Run Code Online (Sandbox Code Playgroud)

emacs indentation locals

1
推荐指数
1
解决办法
1754
查看次数

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

我一直在这种情况下结束,我想使用字典非常像'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个条目然后我真的需要.

python django scope locals django-views

0
推荐指数
1
解决办法
1249
查看次数

Python的?...动态调用嵌套函数

这是pythonic实现吗?

我正在使用包装器从字符串参数动态调用嵌套函数,以减少调用不存在的函数的机会.这是一个例子,我想对arg1和arg2进行不同的比较(根据==,> =,<等等)...

class ComparisonClass(object):
    def__init__(self):
        pass

    def comparison(self,arg1,arg2,comparison):
        def equal_to():               
            pass
        def greater_than():
            pass
        def less_than():
            pass

        return locals()[comparison]()

    def comparison_equal_to(self,arg1,arg2):
        return self.comparison(arg1,arg2,'equal_to')

    def comparison_greater_than(self,arg1,arg2):
        return self.comparison(arg1,arg2,'greater_than')

    def comparison_less_than(self,arg1,arg2):
        return self.comparison(arg1,arg2,'less_than')
Run Code Online (Sandbox Code Playgroud)

python locals nested-function

0
推荐指数
1
解决办法
213
查看次数