问题标签 [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.
python - 我可以使用带有语句的python进行条件执行吗?
我正在尝试编写支持以下语义的代码:
除其他事项(设置、清理)外,范围应决定此部分是否应运行。
例如,如果用户将程序配置为绕过“action_name”,那么在评估 Scope() 之后,do_some_other_stuff() 将在不先调用 do_something() 的情况下执行。
我尝试使用这个上下文管理器来做到这一点:
但有RuntimeError: generator didn't yield
异常(什么时候action
)'bypass'
。
我正在寻找一种方法来支持这一点,而不会退回到更冗长的可选实现:
有谁知道我怎么能做到这一点?
谢谢!
PS我正在使用python2.7
编辑:
解决方案不一定要依赖with
语句。没有它,我只是不知道如何表达它。本质上,我想要上下文形式的东西(支持设置和自动清理,与包含的逻辑无关)并允许基于传递给设置方法并在配置中选择的参数进行条件执行。
我还考虑了使用装饰器的可能解决方案。例子:
但我不想基于这些范围强制执行过多的内部结构(即代码如何划分为函数)。
有没有人有一些创造性的想法?
javascript - 在javascript中使用with是不好的做法吗?
我认为像这样的东西with(Math){document.body.innerHTML= PI}
并不是很好的做法。
sql-server-2005 - 使用基于时间间隔的分组进行数据清理 - sql2005
我在一个表中有以下数据,我想报告这些数据而不必删除任何行。
ActiveSearchID---SearchDate---------SearchPhrase
1---------------------2010 -12-15 12:01:11.587---argos
2---------------------2010-12-15 12:03:40.193---muji
3 ----------2010-12-15 12:03:42.370---无印良品
4-------------- -------2010-12-15 12:04:29.167---办公用品
5---------------------2010-12-15 12 :05:11.590---熔岩
9---------2010-12-15 12:08:38.920---索尼 vaio
10---- ---------------2010-12-15 12:08:41.170---索尼vaio
12------- 2010-12-15 12:09:09.920---索尼vaio电池
13-------2010-12-15 12:09:17.487---索尼vaio 电池
14----------2010-12-15 12:17:10.980---sony vaio 电池
15----------- --------2010-12-15 12:17:12.170---阿尔戈斯
我试图获得的报告是选择在 5 分钟间隔内搜索过的搜索短语的第一个实例。因此,例如查询 no 上述信息将导致以下结果:
SearchDate----------------SearchPhrase
2010-12-15 12:01:11.587---argos
2010-12 -15 12:03:40.193---muji
2010-12-15 12:04:29.167---办公用品
2010-12-15 12:05:11.590---熔岩
2010-12-15 12:08:38.920 ---sony vaio
2010-12-15 12:09:09.920---sony vaio 电池
2010-12-15 12:17:12.170---argos
我已经尝试了以下查询,但我仍然得到重复:
select t1.searchdate, t1.searchphrase from activesearches t1 inner join activesearches t2 on t1.searchphrase = t2.searchphrase and t1.searchdate < t2.searchdate where datediff(s, t1.searchdate, t2.searchdate) <= 300 order by searchdate
我想使用“WITH SearchPhrases AS ()”类型的查询,但我无法理解它。
谢谢
python - 我可以编写一个函数来检测它是否是从“with”语句调用的吗?
更具体地说,我可以检测是否EXPR
在with EXPR: BLOCK
语句中调用了函数吗?我试图让自己熟悉with
python中-statement的用法。作为第一步,我重新实现了一个示例,该示例生成标记文本,出现在参考(contextlib.contextmanager
暂时忽略异常处理)中。
这按预期工作。然后,我开始思考是否tag()
也可以生成空元素:
在我天真的眼里,如果被调用者可以检测到它是否是从with
-statement 调用的,这似乎是可行的。但是,我不知道这种检测是否可行。有没有这样的方法,如果有,怎么做?
python - python的`with`语句目标意外地是None
好像我不明白 --- pythonwith
语句。
考虑这个类:
现在,当使用它时with
,就像在
我希望有一些输出,例如<test instance at memore blah>。但我得到None。
这里有什么问题吗?任何建议都会有所帮助。
(我使用的是 Python 2.6.6。)
编辑:
感谢
ephement将我指向文档。该__enter__
方法应阅读
join - 可以将 DB2 WITH 语句用作 UPDATE 或 MERGE 的一部分吗?
我需要更新数据库表中的一些行。我如何识别要更新的行涉及一系列复杂的语句,我设法将它们归结为一系列 WITH 语句。现在我有了正确的数据值,我需要更新表格。
由于我设法通过 WITH 语句获取这些值,因此我希望在 UPDATE/MERGE 中使用它。一个简化的例子如下:
现在我有两列数据,我想用它们来更新一个表。因此,我没有在底部使用 select,而是尝试了各种合并和更新的组合,包括在 UPDATE/MERGE 上方使用 WITH 语句,或者作为 UPDATE/MERGE 语句的一部分。以下是我认为最接近我想做的事情:
所以它不起作用。我不确定这是否可行,因为我在互联网上没有找到将 WITH 语句与 UPDATE 或 MERGE 结合使用的示例。我有与 INSERT 一起使用 WITH 语句的示例,因此相信它是可能的。
如果有人可以提供帮助,那就太好了,如果我遗漏了任何有助于解决问题的信息,请告诉我。
免责声明:我提供的示例是我正在尝试做的简化版本,实际上可能没有任何意义!
vb.net - 当 IDisposable 不可用时,可以使用 With/End With (VB.NET) 吗?
在由于未实现Using
而无法使用的情况下,以下代码是否可以用于/ ?这会导致内存泄漏还是设置一个实例变量然后将其设置为空会更好?IDisposable
With
End With
python - python: Is there a way to get the code inside the with statement
I was hoping this would work:
and then:
would print:
Specifically, my intention is to take this code and create a function out of it. So I can do: with runInThreads()
or with runManyTimesTillSuccess()
,..
sql-server-2005 - SQL Server/DB2:相同的查询返回不同的结果?
概括
我目前正在开展一个项目,我必须针对底层数据库引擎查询代表用户访问的记录的最后更改。
每个用户都可以(但不是强制)拥有儿童帐户。ID_PUSR
子帐户存储在同一个数据表中,并通过表字段引用其父帐户。当帐户是主要帐户时,ID_PUSR is null
每次更改访问权限时,都会在数据库用户表中创建一条新记录,其中包含最后更新日期 ( DT_UPDT
)。
数据样本
请考虑以下几点:
我仔细检查了两个数据库服务器中的数据表内容,我可以证明它们是相同的记录。
SQL/DB2 查询
此查询与 SQL Server 和 DB2 数据库引擎完全兼容:
不同的结果!
尽管我对上述 RDBMS 运行完全相同的查询,但我得到了不同的结果,如下所示:
IBM DB2
在我们看到两个数据库引擎之间的差异之前,这些结果似乎很好。注意字段中的日期值DT_UPDT
。
SQL 服务器
SQL Server 中的这些结果是我将在 DB2 中使用的结果。它们代表“好”数据。至于ID_USERS
,它们只是 ID,重要的是日期。
问题
- 相同的查询如何使用两个支持 SQL ANSI 的引擎返回不同的结果?
- 是我似乎看不到的数据吗?
- DB2的
WITH...AS ()
解释与 SQL Server 有何不同?
Nota Benne:一个简单select * from USERS order by CD_USER
的揭示了相同的数据。
ms-access - Access 2003 VBA 中记录集字段规范的声明
我知道使用 VBA 在记录集中指定字段的两种方法:
但是在 With 块中会发生什么?
是否可以两者都做,或者有解决方法吗?