问题标签 [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 投票
1 回答
63 浏览

python - 尽管“with”块失败,但仍对文件的内容进行操作

我刚刚用 Python 编写了一个实用程序来做我需要的事情(无关紧要,但它是为内部 DSL 生成与 ctags 兼容的标记文件)。

无论如何-我在声明的上下文中打开并阅读文件with,我很好奇,人们倾向于如何处理该过程中的失败?

我的解决方案是

我将匹配检查放在 with 语句之外,因为我喜欢关闭并完成文件。但是,如果content永远不会被构建,这将失败。

我的解决方案是在这段代码上方初始化content为空字符串,但我得到的感觉是我希望函数结束;异常被抛出函数或其他东西。

在这种情况下,我可以将函数的其余部分放入with块中,但这会扩大打开文件的范围。我可以在块content之前创建,with以便它在失败时存在。但是,我很好奇,人们还希望看到哪些其他解决方案(假设这个问题首先有意义)?

我想我会喜欢这样的东西:

如果这是普遍共识,我将接受我只需要处理它并为函数的其余部分保持打开文件的想法。:)

0 投票
3 回答
47524 浏览

python - 在python的自定义类中实现'with object() as f'的使用

我必须在 python 中打开一个类似文件的对象(它是通过 /dev/ 的串行连接)然后关闭它。这在我班的几种方法中多次完成。我的做法是在构造函数中打开文件,然后在析构函数中关闭它。不过我遇到了一些奇怪的错误,我认为这与垃圾收集器等有关,我仍然不习惯不知道我的对象何时被删除=\

我这样做的原因是因为tcsetattr每次打开它时我都必须使用一堆参数,而且在所有地方都这样做很烦人。所以我想实现一个内部类来处理所有这些,所以我可以用它来做
with Meter('/dev/ttyS2') as m:

我在网上看,我找不到关于如何实现with语法的真正好的答案。我看到它使用__enter__(self)and__exit(self)__方法。但是我所要做的就是实现这些方法并且我可以使用 with 语法吗?或者还有更多?

是否有一个关于如何执行此操作的示例或一些关于它如何在我可以查看的文件对象上实现的文档?

0 投票
7 回答
5388 浏览

python - equivalent of Python's "with" in Ruby

In Python, the with statement is used to make sure that clean-up code always gets called, regardless of exceptions being thrown or function calls returning. For example:

Here, the file is closed, even though an exception was raised. A better explanation is here.

Is there an equivalent for this construct in Ruby? Or can you code one up, since Ruby has continuations?

0 投票
6 回答
3070 浏览

python - 如何制作一个像字符串一样的类?

with我有一个上下文管理器,它为在语句下缩进的代码块捕获输出到字符串。这个上下文管理器产生一个自定义结果对象,当块完成执行时,该对象将包含捕获的输出。

当然,我不能只返回一个字符串,因为字符串是不可变的,因此用户从with语句中返回的字符串在其代码块运行后无法更改。但是,在事后必须将结果对象显式转换为字符串是一件很麻烦的事情str(我还尝试将对象作为语法糖来调用)。

那么是否有可能使结果实例像一个字符串一样,因为它实际上在命名时返回一个字符串?我尝试实现__get__,但这似乎只适用于属性。还是我想做的事情真的不可能?

0 投票
1 回答
405 浏览

python - Python with statement - 是否需要旧式文件处理?

有了with声明,是否需要打开文件/检查异常/手动关闭资源,例如

0 投票
3 回答
705 浏览

vb.net - VB.NET中的扩展With-keyword

在我当前的项目中,每个人都根据它们的本质和作用来命名变量和方法。这有利于快速理解代码,但是有很多长变量名会带来一些麻烦,例如将数据集复制到实体/对象时。因此,尽管您理解了代码,但可读性仍然受到打击。

使用 VB.NET 的 With 关键字会有所帮助。

现在,我的问题是,有没有任何方法可以使用 With 或类似的东西,但同时用于多个变量?就像是:

我完全赞成描述性的命名约定,但它们确实会使事情变得混乱。特别是在VB中!

0 投票
4 回答
502 浏览

c++ - 这是在 C++ 中执行“with”语句的最佳方式吗?

编辑:

所以这个问题被误解到如此荒谬的程度,以至于它不再有意义。我不知道怎么做,因为我实际的问题是我对此的具体实现——是的,众所周知是没有意义的,是的,与惯用的 C++ 不太相似——宏是否尽可能好,以及它是否一定不得不使用auto,或者如果有合适的解决方法。它不应该引起如此多的关注,当然也不会引起如此严重的误解。要求受访者编辑他们的答案是没有意义的,我不希望任何人因此而失去声誉,而且这里有一些很好的信息可供潜在的未来观众使用,所以我将任意选择一个投票率较低的人答案以平均分配所涉及的声誉。继续前进,这里没什么可看的。


我看到了这个问题,并决定with用 C++ 编写一个语句可能会很有趣。关键字使这auto非常容易,但是有没有更好的方法来做到这一点,也许不使用auto?为简洁起见,我省略了代码的某些部分。

这是一个(更新的)用法示例,其中包含一个更典型的案例,显示了with在其他语言中的用法。

我之所以选择o它是因为它是一个不常见的标识符,它的形式给人一种“通用事物”的印象。如果您有一个更好的标识符或更有用的语法的想法,那么请提出建议。

0 投票
1 回答
78 浏览

sql - 有人可以帮我写一篇关于 CTE 的好文章。公用表表达式

谁能给我一篇关于 CTE 的文章。文章应描述 CTE 的目的以及应在何处使用。

0 投票
3 回答
3390 浏览

actionscript-3 - 在 AS3 中使用还是不使用 with 语句?

所以我今天读了很多关于 with 语句的性能、可读性和类似的东西,但我仍然不确定我是否应该或不应该在 AS3 中使用 with 语句。

使用 with 语句似乎与创建带有引用的本地 var 相同。有人可以提供有关此主题的详细信息吗?

0 投票
7 回答
8370 浏览

c# - Visual Basic 关键字的 C# 等效项:'With' ... 'End With'?

在 Visual Basic 中,如果要更改单个对象的多个属性,则有以下With/End With语句:

我知道 C# 在创建新对象时可以做到这一点:

但是,如果myOject已经创建(就像 Visual Basic 正在做的那样),我该怎么做?