問題タブ [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 - 「with」ブロックで障害が発生したにもかかわらず、ファイルのコンテンツを操作する
必要なことを行うために Python でユーティリティを作成しました (関係ありませんが、社内 DSL 用の ctags 互換タグ ファイルを生成するためのものです)。
とにかく、私はステートメントのコンテキストでファイルを開いて読んでいますが、with
興味があります.人々はそのプロセスの失敗をどのように処理する傾向がありますか?
私の解決策は
ファイルを閉じて処理するのが好きなので、一致チェックを with ステートメントの外に置きました。ただし、content
ビルドされない場合、これは失敗します。
私の解決策は、content
このコードのすぐ上にある空の文字列に初期化することでしたが、私が感じたのは、関数を終了させたいということです。関数などから例外がスローされます。
この場合、残りの関数をwith
ブロックに入れることもできますが、それによって開いているファイルの範囲が広がります。障害に照らして存在するように、ブロックcontent
の前に作成できます。with
私は興味がありますが、人々が見たいと思う他の解決策は何ですか (そもそも質問に意味があると仮定して)?
私は次のようなものが好きだと思います:
それが一般的なコンセンサスである場合、私はそれに対処し、残りの機能のためにファイルを開いたままにしておく必要があるという考えを受け入れます。:)
python - Pythonのカスタムクラスで「with object() as f」の使用を実装する
Python でファイルのようなオブジェクト (/dev/ を介したシリアル接続) を開き、それを閉じる必要があります。これは、私のクラスのいくつかのメソッドで数回行われます。私がやっていた方法は、コンストラクタでファイルを開き、デストラクタでファイルを閉じることでした。私は奇妙なエラーが発生していますが、それはガベージコレクターなどに関係していると思います.オブジェクトがいつ削除されているのか正確にわからないことにまだ慣れていません=\
私がこれを行っていた理由はtcsetattr
、それを開くたびにたくさんのパラメーターを使用する必要があり、そのすべてをあちこちで行うのが面倒だからです。だから私はそれをすべて処理するために内部クラスを実装したいので、それを使用することができます
with Meter('/dev/ttyS2') as m:
私はオンラインで探していましたが、with
構文がどのように実装されているかについて本当に良い答えを見つけることができませんでした. __enter__(self)
メソッドとメソッドを使用していることがわかりました__exit(self)__
。しかし、これらのメソッドを実装する必要があり、 with 構文を使用できますか? それともそれ以上のものがありますか?
これを行う方法の例、またはファイルオブジェクトに既に実装されている方法に関するドキュメントがありますか?
python - Python の Ruby の "with" に相当する
Python では、このwith
ステートメントを使用して、例外がスローされたり、関数呼び出しが返されたりしても、常にクリーンアップ コードが呼び出されるようにします。例えば:
ここでは、例外が発生したにもかかわらず、ファイルは閉じられています。より良い説明はこちらです。
Ruby でこの構造に相当するものはありますか? それとも、Ruby には継続があるので、1 つコーディングできますか?
python - 文字列のように機能するクラスを作成するにはどうすればよいですか?
with
ステートメントの下にインデントされたコードのブロックの文字列への出力をキャプチャするコンテキストマネージャーがあります。このコンテキストマネージャーは、ブロックの実行が終了すると、キャプチャされた出力を含むカスタム結果オブジェクトを生成します。
もちろん、文字列を返すことはできません。文字列は不変であるため、ユーザーがwith
ステートメントから取得した文字列は、コードブロックの実行後に変更することはできません。ただし、事後に結果オブジェクトを文字列に明示的に変換する必要があるのは、ちょっとしたドラッグですstr
(オブジェクトを少しの構文糖衣として呼び出し可能にすることも試しました)。
それで、名前が付けられたときに実際に文字列を返すという点で、結果インスタンスを文字列のように動作させることは可能ですか?を実装しようとし__get__
ましたが、それは属性でのみ機能するようです。それとも、私がしたいことは本当に不可能ですか?
python - Python with statement - 古いスタイルのファイル処理はもう必要ですか?
ステートメントがwith
ある場合、次のように、ファイルを開く/例外をチェックする/リソースを手動で閉じる必要がありますか?
vb.net - VB.NET の拡張 With キーワード
私の現在のプロジェクトでは、誰もが変数とメソッドに名前を付け、その名前とその機能にちなんでいます。これはコードをすばやく理解するのに適していますが、データセットをエンティティ/オブジェクトにコピーするときなど、長い変数名がたくさんあると頭痛の種になります。したがって、コードを理解していても、読みやすさは依然として打撃を受けます。
VB.NET の With キーワードを使用すると役立ちます。
さて、私の質問ですが、同時に複数の変数に対して With などを使用する方法はありますか? 何かのようなもの:
私はわかりやすい命名規則を支持していますが、それらは物事を混乱させる傾向があります。特にVBで!
c++ - これは C++ で "with" ステートメントを実行する最良の方法ですか?
編集:
したがって、この質問は非常にばかげた程度に誤解されており、もはや意味がありません。私が実際に尋ねた質問は、これの私の特定の実装-はい、無意味であることが知られている、はい、慣用的なC ++に遠く離れていない-マクロが可能な限り優れているかどうか、そしてそれが必ずしも使用しなければならなかったauto
、または代わりに適切な回避策があった場合。これほど多くの注目を集めることは想定されていませんでしたし、これほどの誤解もありませんでした。回答者に回答を編集してもらうのは無意味です。これで評判を落とすことは望んでいません。将来の潜在的な視聴者のために、ここにはいくつかの良い情報が浮かんでいます。関連する評判を均等に分配するための回答。先に進んでください。ここには何もありません。
この質問を見てwith
、C++ でステートメントを書くのは楽しいかもしれないと判断しました。キーワードはこれauto
を非常に簡単にしますが、おそらく使用せずにそれを行うより良い方法はありauto
ますか? 簡潔にするために、コードの一部を省略しました。
with
これは、他の言語で見られるの使用を示す、より典型的なケースの (更新された) 使用例です。
私が選んだo
のは、これが珍しい識別子であり、その形式が「一般的なもの」の印象を与えるためです。より良い識別子またはより使いやすい構文のアイデアがある場合は、それを提案してください。
sql - 誰かがCTEに関する良い記事を手伝ってくれませんか. 共通テーブル式
誰かが CTE に関する記事を提供してくれませんか。記事では、CTE の目的と使用場所について説明する必要があります。
actionscript-3 - AS3でwithステートメントを使用するかどうか。
そのため、今日はwithステートメントのパフォーマンス、読みやすさなどについて多くのことを読んでいますが、AS3でwithステートメントを使用する必要があるかどうかはまだわかりません。
withステートメントを使用することは、参照を運ぶローカル変数を作成することと同じように見えます。誰かがこのトピックに関する詳細な情報を提供できますか?
c# - Visual Basic キーワードに相当する C#: 'With' ... 'End With'?
Visual Basic では、1 つのオブジェクトの複数のプロパティを変更する場合は、次のWith/End With
ステートメントがあります。
新しいオブジェクトを作成するときにC#ができることを私は知っています:
myOject
しかし、 (Visual Basic が行っているように) が既に作成されている場合、どうすればよいでしょうか?