Lambda Pythonが楽しい季節になって参りました。 クラスを書いていると変わった挙動に出会ったので、軽く調べてメモしておきます。 クラス変数の挙動試験 キッカケ 最初は、Pythonにおけるクラス変数とインスタンス変数の関係的なものを知らず、変数の初期化の役割をクラス変数にやらせていました。 それが、どうもLambdaで実行するとクラス変数の値の変更がキャッシュされてしまうことがあるようで、そうでないこともあるようで、色々と不審に思って調べ始めました。 テストコード 内容はこんな感じ。 複数種類のクラス変数を定義 ホスト名を確認 現在のクラス変数値とメモリアドレスを確認 クラス変数を更新 これを何度も実行する import os import time from socket import gethostname def lambda_handler(event, context)