问题标签 [with-statement]

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.

0 投票
2 回答
2994 浏览

sql-server - SQL Server WITH 不起作用,语法无效?

使用以下查询,

我得到以下回报:

在我看来是对的。我问了一个关于子查询的类似问题,但同样的逻辑在这里不适用,因为我用名称 cteTest 为表起别名。少了什么东西?

0 投票
1 回答
209 浏览

python - 在 Python 中使用 `with` 的不同类

如果您有以下课程:

然后你在一个名为 check_foo.py 的文件中像这样使用它

如果你导入check_foo并运行dir(check_foo),你只会得到一个check_foo.Foo模块。

我知道 PEP 343 提到您可以执行以下操作:

check_foo并且它会在as中正确实例化,check_foo.naming_it但我的问题是可以解决这个问题并动态设置名称。

我正在玩概念证明,想知道我能用上述想法走多远。

是否可以使用我传递给的字符串命名实例Foo

注意:我也知道withhacks. 我们不建议我看一下:)

0 投票
5 回答
18321 浏览

python - Python 中的 RAII - 离开作用域时自动销毁

我一直在尝试在 Python中找到RAII 。资源分配是初始化是 C++ 中的一种模式,对象在创建时就被初始化。如果失败,则抛出异常。这样,程序员就知道对象永远不会处于半构建状态。Python 可以做到这一点。

但 RAII 也适用于 C++ 的范围规则,以确保对象的迅速销毁。一旦变量从堆栈中弹出,它就会被销毁。这可能发生在 Python 中,但前提是没有外部或循环引用。

更重要的是,对象的名称仍然存在,直到它所在的函数退出(有时更长)。模块级别的变量将在模块的整个生命周期内一直存在。

如果我做这样的事情,我想得到一个错误:

我可以在使用后手动删除名称,但这会非常难看,并且需要我自己努力。

在这种情况下,我希望它做我的意思:

Python 做了一些作用域,但不是在缩进级别,只是在功能级别。要求我创建一个新函数只是为了限定变量以便我可以重用名称似乎很愚蠢。

Python 2.5 有“with”语句 ,但这需要我明确地放入__enter____exit__函数,并且通常似乎更倾向于清理文件和互斥锁等资源,而不管退出向量如何。它对范围界定没有帮助。还是我错过了什么?

我搜索了“Python RAII”和“Python 范围”,但找不到任何直接且权威地解决该问题的内容。我查看了所有的 PEP。这个概念似乎没有在 Python 中得到解决。

我是一个坏人,因为我想在 Python 中使用范围变量吗?那是不是太不像 Pythonic 了?

我不是在摸索吗?

也许我正试图消除语言动态方面的好处。有时想要强制执行范围是自私的吗?

我是否因为希望编译器/解释器捕捉我疏忽的变量重用错误而懒惰?嗯,是的,我当然很懒,但我是不是很懒?

0 投票
3 回答
25284 浏览

python - 使用上下文管理器时对象变为无

为什么这不起作用:

我得到:

0 投票
6 回答
20415 浏览

python - 将参数传递给 __enter__

刚从这篇文章中学习 with 语句

问题是,我可以将参数传递给__enter__吗?

我有这样的代码:

我想将文件名和 param_dict 作为参数传递给__enter__. 那可能吗?

0 投票
1 回答
1746 浏览

sql - 使用来自子 SELECT 查询的 COUNT 值来确定 FETCH ROW 限制

我很想知道是否有任何方法可以重写以下无效的 DB2 查询以获得我需要的内容:

我收到“令牌整数无效”。有效标记:ROW ROWS 错误。

我的目标是使用第二个 WITH 语句 pull_count 来设置第一个 WITH 语句 pull 的 FETCH 限制。我只想选择一半可用的行。

有什么建议么?

0 投票
5 回答
61226 浏览

python - Python 条件“With”锁设计

我正在尝试使用 with 语句进行一些共享锁定

有道理?如果我还没有锁,我基本上只想这样做。

除了能够做到这一点之外,这是一个糟糕的设计吗?我应该只是获取/释放自己吗?

0 投票
3 回答
255 浏览

python - 在 Python 中关闭文件

这个关于运行进程并丢弃其输出的最简单方法的讨论中,我建议使用以下代码:

另一位开发人员建议使用此版本:

我的 C++ 程序员想说,何时释放对象是一个实现细节,所以为了避免文件句柄在不确定的时间内打开,我应该使用with. 但是一些资源表明 Python 总是或几乎总是对这样的代码使用引用计数,在这种情况下,文件句柄应该在完成后立即回收,并且subprocess.call不需要使用with

(我想让文件句柄/dev/null特别打开不太重要,所以假装它是一个重要的文件。)

哪种方法最好?

0 投票
1 回答
4641 浏览

python - 在使用 Python 'with' 语句时捕获异常 - 第 2 部分

这是使用 Python 'with' 语句时捕获异常的问题的延续。
我是个新手,我在 GNU/linux 上使用 Python 3.2 测试了以下代码。

在上述问题中,提出了与此类似的方法来从“with”语句中捕获异常:

这让我想知道:如果 some_code 引发 IOError 而不捕获它会发生什么?它显然被外部的'except'语句所捕获,但这不是我真正想要的。
你可以说好的,只需用另一个 try-except 包装 some_code,等等,但我知道异常可能来自任何地方,不可能保护每一段代码。
总而言之,我只想打印 'error' 当且仅当 open('foo.txt', 'a') 引发异常,所以我在这里问为什么以下代码不是标准建议的方式这样做:

谢谢!

0 投票
2 回答
363 浏览

vb.net - 从 VB.NET With 块中退出

在下面的代码块中,如果 VB.NET 是否优雅地退出 With 块Var1 = 2

我记得这是 VB6 中的一个问题,并导致无法预测的行为令人头疼 - VB.NET 也是如此吗?