読者です 読者をやめる 読者になる 読者になる

ゆうなんとかさんの雑記帳的な。

Twitterで踊ったり音ゲーしたりしてるあの名前がよくわからない人が書いてるらしいよ。

うまく使うと楽できそうなwith

なにこれすげすげゔぉー

with 文は、ブロックの実行を、コンテキストマネージャによって定義されたメソッドでラップするために使われます。

今日教えてもらったのですが、うまく使うとかなりすっきりしそう。
Pythonさん暗黙的に呼ばれる関数が多くて、知らないと損した気分になりますね。ちなみにwithを使うと__enter__と__exit__が暗黙的に呼ばれるみたいです。だいたいの挙動はこんなかんじです。

c = WithClass()
with c:
    some_method()
# ↓
c = WithClass()
c.__enter__()
some_method()
c.__exit__()

既視感あるなと思ったらこれですが↓

using(IDisposable disposable = new StreamReader(hoge))
{
    SomeMethod();
}

こちらよりはかなり柔軟な処理ができそうです。