- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想我对 Python 中的模块命名空间有点困惑。我玩过 Byteplay,这就是我尝试过的:
我构建了一个等同于 : (byteplay's printcodelist) -> 的操作码列表
0 LOAD_CONST 3
1 STORE_NAME a
2 LOAD_CONST None
3 RETURN_VALUE
但是当我那样执行它时:
exec mycode in t #t is {}
print 'a' in t #False , but I expected True
同样的事情发生在我
import b
'a' in b.__dict__ #False
b.a #error
当我替换 STORE_NAME
时与 STORE_GLOBAL
它有效。但是我认为 STORE_NAME 用于在当前本地命名空间中存储一个值。但是顶级的本地命名空间是否与全局命名空间相同?例如locals() == globals()
如果仅使用,则在主作用域中为真。基本上:如果我使用内置编译函数编译“a = 3”,
dis.dis() and bytecode's Code.from_code(codeobject) show STORE_NAME.嗯
最佳答案
我已尝试重现您的步骤,一切正常。让我们逐步查看该过程。首先,代码创建。
这里我们导入所有我们需要的:
from byteplay import Code, LOAD_CONST, STORE_NAME, RETURN_VALUE
让我们创建一个带有适当参数的操作码列表(一个元组列表,每个元组包含操作码作为第一个元素,参数作为第二个元素):
lst = [
(LOAD_CONST, 3),
(STORE_NAME, 'a'),
(LOAD_CONST, None),
(RETURN_VALUE, None)
]
好了,到此为止。接下来,最负责的步骤是创建代码对象。它接收10 个参数。让我们看一下:
x = Code(
lst, # opcodes list (what we execute)
[], # outer scope variables (obviously, we don't have any here),
[], # arguments (nothing here),
False, # *args here? Nope
False, # **kwargs here? Nope
False, # !!!Important!!! DO WE CREATE NEW NAMESPACE? No! We use given!
'', # name ...
'', # filename ... who cares...
0, # first line number
'' # docstring
)
Attention! If the 6-th argument to code creation was set to True, you won't receive 'a' variable stored in locals after our code is executed. That's how functions work. They create their own namespace (co_names), and namespace we execute code in won't be patched with 'a' variable.
那么,让我们运行吧!
nsloc = {} # locals to execute code with
nsglob = {} # globals to execute code with
# We could use one namespace for both but that doesn't matter
exec x.to_code() in nsglob, nsloc
print nsloc
而且,结果如预期的那样:
{'a': 3}
希望对您有所帮助。
关于python - STORE_NAME 和 STORE_GLOBAL 在主要范围内是等价的吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8451691/
我有三个 td,并且正在尝试将每个内部的函数限制为仅该 td。我该怎么做呢?使用此代码,它会获取所有 3 个图像并将它们全部插入到 h2 之前: jQuery("td.frontpage_news")
这是所需的通用公式:if((b2-b1)=c1,True,False但是,我需要 b2-b1约等于 c1 , 在 5 内大约单位(在本例中为秒)。有没有可以处理这个的函数? 最佳答案 你也可以试试这个
我有三个整数,作为命令行参数传入后赋值给变量。我想验证每个整数都在 1-5 范围内。有没有一种方法可以在不使用如下所示的 if 语句的情况下在 Java 中完成此操作?我想避免这样做(注意伪代码):
检查某个变量 X 是否在某个变量 Z 的 n 个数字之内的最简洁方法是什么。n 是任意定义的数字(即 3)。 所以我想要 if (z {something} x){ // run code i
我的顶级 build.gradle (Gradle 2.2) 中有类似的东西 ext.repo = "https://my-artifactory-repo" buildscript { re
我只是在我的 jsp 页面中进行随机技巧和测试。我想使用 Attributes 将 request 范围对象存储在 session 范围对象中。存储后,当尝试从请求属性中提取值(存储在 session
我正在使用 Spring 。我有一个外部化属性文件。我正在按如下方式加载它。 现在我如何将 session 中的属性作为键值对保存? 我尝试编写一个扩展 ServletContextListene
我有以下范围: scope :billable, -> (range_start = nil, range_end = nil) { joins(:bids) .where("au
请看我的示例代码: var testObject = new SomeClass(); using (testObject) { //At this point how can the te
我目前在保持在 vector 范围内时遇到一些问题。 在下面的代码中,我试图检查正在检查的数字是否小于或等于它后面的数字 #include #include #include bool fun(
有人可以帮我解决下面的(简化的)代码吗?我试图从幻灯片事件函数中调用 doTheSlide() 函数。我对 JS 范围的理解仍然有点可疑。 实现这一目标的正确方法是什么?我收到此错误: Uncaugh
如何在 Swift 中检查时间是否在下午 6 点到晚上 11 点之间?我在使用 NSDateFormatter 时遇到了困难,我觉得一定有更简单的方法。 最佳答案 使用NSCalendar: let
我目前正在尝试创建一个 2D 横向滚动条,并且我目前有我的“世界”绘图(暂时是一个大白框),但我无法弄清楚世界地图的边缘与边缘之间的任何关系确保视口(viewport)始终完全被 map 覆盖。 我的
我正在学习李普曼,而且我只是在学习。我在这里尝试编写一个代码,该代码将返回 vector 中的最小元素。当我在 Codeblocks 中编译我的代码时,它说:“模板声明不能出现在 block 范围内”
我有三个日期对象。我该如何比较它们才能确定它们之间的相对差异。 oldDate = newDate() - 5; midDate = newDate() - 2.5; newDate = newDat
我需要检查对象“objCR”是否存在于当前范围内。我尝试使用以下代码。 if(objCR == null) alert("object is not defined"); 让我知道哪里错了。 最佳答案
如何检查 IP 地址是否属于私有(private)类别? if(isPrivateIPAddress(ipAddress)) { //do something } 如有
我正在开发一个 Firefox 插件,它可以转换用户通过用户选择突出显示的屏幕温度。转换后,用户选择将替换为 ID 为 alreadyconverted 的 span HTML 元素,其中包含原始温度
我正在开发一个邮资应用程序,该应用程序需要根据多个邮政编码范围检查整数邮政编码,并根据邮政编码匹配的范围返回不同的代码。 每个代码都有多个邮政编码范围。例如,如果邮政编码在 1000-2429、254
我正在使用 excel 范围进行连接:Set rng = Range("A1:A8")如果范围内的单元格之一为空,则会添加一个空格。 你如何阻止这个空间被添加? 最佳答案 假设您在那些非空单元格中有常
我是一名优秀的程序员,十分优秀!