ファイルの読み込みやデータベースのセッション管理など、
withを使用しクローズを自動でおまかせするような処理を記述する際は、
contextmanagerがおすすめだよと教えてもらいました。
そのあたりを自分のメモとして記載。
contextmanager適用前のコード
class sample:
def __enter__(self):
print("with in")
def __exit__(self, exc_type, exc_value, traceback):
print("with out")
contextmanager適用前のコード
from contextlib import contextmanager
@contextmanager
def sample:
print("with in")
yield
print("with out")
yieldの前後が、__enter__と__exit__となります。
もし__enter__でreturnするものがある場合は、
yield <return対象オブジェクト>
とすればOK
20代前半までは東京で音楽をやりながら両手の指以上の業種でアルバイト生活をしていましたが、某大手プロバイダのテレアポのバイトでPCの知識の無さに愕然とし、コンピュータをもっと知りたい!と思ったことをきっかけに25歳の時にITの世界に未経験で飛び込みました。
紆余曲折を経て、現在は個人事業主としてお仕事させていただいており、10年ほどになります。
web制作から企業システム構築、ツール開発など、フロントエンドもバックエンドもサーバーもDBAも依頼があれば何でもやってきた雑食系エンジニアです。
今風にいうとフルスタックエンジニアということになるのでしょうか??
→ 詳細プロフィールというか、生い立ちはこちら
→スキルシートをご覧になる場合はこちら
→お仕事のご依頼やお見積りなどお問い合わせはこちらから!

