問題タブ [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.
javascript - 角括弧表記の「with」スコープとプロパティ
「with」ステートメント内で角括弧表記でのみアクセスできるオブジェクトプロパティにアクセスすることは可能ですか。
例:
javascript - Javascript サンドボックス
開発者に Javascript でサイト用のカスタム アプリを作成してもらいたいのですが、それをサンドボックス化して、ユーザーをリダイレクトしたり、本文の表示を none に設定したりするなどのいたずらをできないようにしたいと考えています。彼らが必要とする機能はそこに存在するので、サンドボックスを作成することは次の問題になると考えていました:
これを回避するのはどのように簡単で、他にどのような方法がありますか? 提出されたすべてのアプリをモデレートする必要はありません。
python - Pythonの「with」ステートメントは何のために設計されていますか?
with
今日初めてPythonステートメントに出くわしました。私は数ヶ月間 Python を軽く使っていましたが、その存在すら知りませんでした! ややあいまいなステータスを考えると、質問する価値があると思いました:
- 使用するように設計された Python
with
ステートメントは何ですか? - それを何のために利用しますか?
- 知っておく必要がある落とし穴や、その使用に関連する一般的なアンチパターンはありますか?
try..finally
よりも優れた使用例はありwith
ますか? - なぜもっと広く使われていないのですか?
- どの標準ライブラリ クラスと互換性がありますか?
python - 複数のコンテキストマネージャーで「with」ブロックを作成しますか?
コンテキストマネージャを介して取得する3つのオブジェクト、たとえばAロック、db接続、およびipソケットがあるとします。次の方法で取得できます。
しかし、1つのブロックでそれを行う方法はありますか?何かのようなもの
さらに、コンテキストマネージャーを持つオブジェクトの長さが不明な配列が与えられた場合、どういうわけか次のことを行うことができますか?
答えが「いいえ」の場合、そのような機能の必要性は悪いデザインを意味するのでしょうか、それとも私はそれを一言で提案する必要がありますか?:-P
sql-server-2008 - WITHステートメントはselectクエリのレコードセットをどのように保存しますか?
次のSQL(SQL Server 2008)ステートメントについて考えてみます。
MyResultはtempdbの一時テーブルに保存されていますか?それとも何か他のことをしますか?
いくつかのクエリを最適化しており、パフォーマンスなどを測定するために、WITHステートメントを(内部的に)よりよく理解する必要があります。
ありがとう
javascript - なぜevalはwithステートメントの下でスコープ変数にアクセスできないのですか?
eval
underwith
ステートメントを使用してスコープ変数にアクセスできないのはなぜですか?
例えば:
編集:知識のあるCMSが指摘したように、これはブラウザのバグ(WebKitコンソールを使用するブラウザ)のようです。
誰かが私が思いついた嫌悪感が「悪」eval
とwith
-の両方を必要とするのではないかと思っていたら、関数(コールバックとして使用)を別のコンテキストで実行できるかどうかを確認しようとしていましたで定義されました。そして、いいえ、私はおそらく(咳)これをどこにも使用しません..何よりも好奇心が強いです。
python - Python2.4でのコンテキストクラスの処理
python-daemonモジュールを使おうとしています。スクリプトを適切にデーモン化するためのdaemon.DaemonContextクラスを提供します。私は主にPython2.6以降を対象としていますが、バージョン2.4との下位互換性を維持したいと考えています。
Python 2.5はfutureからのコンテキストのインポートをサポートしていますが、Python2.4にはそのような機能はありません。withステートメントで発生したエラーをキャッチし、2.4のコンテキストを手動で開始および終了できると思いましたが、発生したSyntaxErrorをキャッチできないようです。
インタプリタのバージョンを明示的にチェックする以外に、これを達成する方法はありますか?以下は、私がやろうとしていることの要点と私が直面している問題です。実生活では、コンテキストクラスを制御できないため、元のクラスを操作せずに機能する必要があります。つまり、これらのアイデアは好きではありません。
Python2.4がpython-daemonを実行できないかどうかは気にしないでください。少なくとも、エラーをキャッチしてフォールバックなどを実装できるようにしたいと思います。
助けてくれてありがとう。
python - try-exceptブロックでpython "with"ステートメントを使用する
これは、python の "with" ステートメントを try-except ブロックと組み合わせて使用する正しい方法ですか?:
もしそうなら、物事を行う古い方法を考慮してください:
ここでの "with" ステートメントの主な利点は、3 行のコードを削除できることですか? この使用例については、私には説得力がないように思えます(ただし、「with」ステートメントには他の用途があることは理解しています)。
編集: 上記の 2 つのコード ブロックの機能は同じですか?
EDIT2:最初のいくつかの回答は、「with」を使用する利点について一般的に語っていますが、ここではわずかな利点のようです。私たちは皆、何年も f.close() を明示的に呼び出してきました (またはそうすべきでした)。ずさんなコーダーが「with」を使用することで恩恵を受けるという利点があると思います。
garbage-collection - GC 言語での RAII の (またはより適切な使用) に関する研究はありますか?
注: オブジェクト ライフタイム RAII を使用しない/ブロック スコープ RAII を使用する
追加の gc カテゴリ、短命のオブジェクト (gc カテゴリをやや頻繁にチェックする)、長命のオブジェクト (gc カテゴリをそれほど頻繁にチェックしない)、およびリソース オブジェクト (gc カテゴリを非常に頻繁にチェックする) を使用することは可能のようです。または、リソース オブジェクトの追加の参照カウント gc を使用することもできます。
using/with スタイルは、I/O のより機能的なスタイル (私が間違っていて、これが機能的なスタイルでない場合は許してください) を促進することで、いくつかの利点があるようです。オブジェクトベースの RAII の柔軟性 (簡単だから)。しかし、問題によっては、リソースの有効期間を追跡するのが難しい場合があります。
gc の複雑さと速度を回避する以外に、これが主流の言語で行われていない理由はありますか?それらの仕様では、一部のタイプのオブジェクト/またはすべてのオブジェクトの参照カウントが指定されておらず、人々が使用する他の実装には参照カウントがなく、それらの言語でのオブジェクトの有効期間 RAII の使用が制限されています。
PS:Perl に C++ タイプの RAII はありますか?
python - ステートメントマネージャーとコンテキストマネージャーでPythonを理解する
私はそのwith
声明を理解しようとしています。try
/except
ブロックを置き換えることになっていることを理解しています。
今、私がこのようなことをしたとしましょう:
これをコンテキストマネージャーに置き換えるにはどうすればよいですか?