问题标签 [locals]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Setting function variables with execfile()
I am trying to load information into a user defined function for further processing. Since the input files must be generated by non-programmers I have chosen the following format:
My function then loads the input file via execfile()
. I then want to group data into an array and pass that as the output of the function. Roughly like so:
I know that loading data via exec()
and execfile()
are frowned upon, but bear in mind that the input are generated by non-programmers. Anyways, I get the following error:
After adding these lines, I can confirm that my variables are loaded into the local
name space as expected:
What puzzles me is why my function looks to the global
name space when I try to define my variables. I were under the impression that unless specifically stated, everything inside a function dealt with the name space local to the function. I can make it work by modifying my execfile()
command to:
but I am not interested in loading everything into the global name space.
So, how do I make this work without loading everything into the global
name space?
Kind regards, Rasmus
======== Edit =======
This is how I made it work based on Quentin's answer:
Cheers Quentin!
python - 从函数外部返回变量名,作为python函数内部的字符串
所以我创建了一个函数,它将一个动作(在这种情况下,一个数组与一个正弦曲线的逐点乘法,但这对我的问题无关紧要)应用于一个数组。
现在我创建了另一个函数,我想用它创建一个string
python 代码,以便以后多次应用第一个函数。第二个函数的输入可以是 astring
或 an array
,因此如果需要,我也可以在其自己的输出上使用第二个函数。我在字符串中获取变量名的方法在函数之外工作。
输入 :
输出 :
所以这里var
是提供给函数的变量(数组或字符串),在本例中是一个数组。if 语句很好地返回了它的名字。
但是,当我在函数中使用它时,无论我给它什么输入,它实际上似乎都是在 locals() 中寻找var 。不知何故,它不会从函数输入中获取var 。
定义 :
输入 :
输出 :
想要的输出:
为什么是listoflistsofargs
从函数输入而var
不是?我var
在定义中的列表理解中指定functionTWO
。通常,当我将列表推导与函数输入一起使用时,它可以正常工作。有谁知道为什么这里不是这种情况?先感谢您!
编辑:所以我想答案是不。Marcin 的类实现看起来更简洁,代码量也差不多。太糟糕了,我无法让它在函数中工作。对于关于使用变量名作为字符串的其他不知道(实际上是其他想法),有这个问题,我得到了上面对变量名的列表理解。
java - 在声明之前使用变量不是错误吗?
在声明局部变量之前初始化局部变量的规则是什么?是否可以在声明之前使用变量?我在此页面(局部变量声明问题)上看到它是非法的,但是当我尝试它时:
ruby-on-rails - Rails 局部变量未在局部定义
我确定我遗漏了一些明显的东西,但我无法弄清楚。
我在索引和显示视图中都使用了一个部分。从索引调用时,部分行为符合预期,但从显示调用时会引发未定义的变量或方法异常。
这是我的错误:
这是来自 Show 视图的渲染调用(这个失败)
这是索引视图中的渲染调用(这个有效)
这是我的部分,我使用的是 HAML 语法
提前致谢!
c++ - 在早期 C 中一开始就声明所有作用域局部变量的编译含义?
我记得听说在块的开头排列所有范围成员不再是 C 和 C++ 的推荐做法,但这是否意味着它在生成代码时以某种方式阻碍了编译器,或者只是不再需要这样做,因为它并不总是方便?AKA 如果按需声明本地变量,编译器生成最佳分配是否更有效?
python - Python中“正常”和“内部函数”导入之间的真正区别
关于这个问题:local-import-statements-in-python,在我提问时在这里引用:
我认为将 import 语句放置在使用它的片段附近,通过使其依赖关系更加清晰来提高可读性。Python会缓存这个吗?我应该关心吗?这是一个坏主意吗?
更多理由:它适用于使用库中神秘位的方法,但是当我将该方法重构到另一个文件中时,我没有意识到我错过了外部依赖项,直到出现运行时错误。
我想问以下问题:
- 在 .py 文件顶部导入模块和从函数定义内部导入模块之间的真正区别最终是什么?
例如,我个人遇到了一个模块的特殊问题,win32com.client
当我在文件顶部导入模块时,我的脚本崩溃了,但奇怪的是,在我从依次调用的函数中调用 import 语句后,它似乎可以正常执行它的方法之一。
有关这方面的更多信息,请参阅我的另一篇文章:如何在 Python 中的单独线程中启动 win32 应用程序。
我怀疑这种行为与 locals() 和 globals() 在某些情况下被不同地更新或根本不更新有关......请赐教。
javascript - 如何将 javascript 变量作为局部变量传递给局部变量?Rails 4 + 哈姆尔
我有一个代表用户列表的部分,我想让它为每个选定的用户发送不同的本地,以便用隐藏输入来刷新视图的一部分,该输入采用本地的值。我的用户部分中有这个:
这是我正在调用的函数:
这个想法是在局部的本地发送“with_user”javascript值,但我尝试了一切以使其工作。没门 !有人可以帮助我吗?
python - PyEval_GetLocals 返回全局变量?
我正在尝试从使用 boost.python 导出的 C++ 类的构造函数访问 python 本地变量,但 PyEval_GetLocals() 似乎返回全局而不是本地字典。一个例子:在 C++ 中我做
如果我现在用 Python
我得到“42”作为输出(如预期的那样)。但是,同样的情况发生在
尽管 'fun()' 已经创建了一个新范围,但它也会打印 '42'。我本来希望在 fun() 退出后“xyz”名称再次超出范围,因此在我到达 print 语句时会留下未定义的“xyz”。
我究竟做错了什么?有没有办法从 C++ 对象或函数中访问本地名称?
python - 为什么 locals() 返回一个奇怪的自引用列表?
所以我使用 locals() 来获取函数中的一些参数。效果很好:
标准的东西。但现在让我们介绍一个列表推导:
诶?为什么要插入自引用?
ruby-on-rails - Rails 中的当地人部分
我有这个部分:
其中包括这部分:
运行时,我得到:
未定义的局部变量或方法“类型”
<#:0x007fe510aa3c80>
它指向我输出 <%= type %> 的错误有人知道为什么吗?