\

Pythonでは、環境変数を取得するためにos.getenvos.environ.getの2つの関数がよく使われます。これらの関数はどちらも同じ目的を果たしますが、それぞれには微妙な違いがあります。

os.getenvの仕様

os.getenvは、環境変数keyが存在すればその値を返し、存在しなければdefaultを返します。keydefault、および返り値は文字列です。もし環境変数がなくともKeyErrorがraiseされず、第二引数(キーワード引数)のdefaultの値が返ります(指定しなければNoneが返ります)。

os.environ.getの仕様

os.environ.getは、os.environが文字列の環境を表すマップ型オブジェクトであるため、getメソッドを使うことができます。getメソッドの仕様はkeyが辞書にあればkeyに対する値を、そうでなければdefaultを返します。defaultが与えられなかった場合、デフォルトではNoneとなります。そのため、このメソッドはKeyErrorを送出することはありません。

os.getenvとos.environ.getの違い

os.getenvos.environ.getは同様の動作であることが分かります。os.environ.get('ENV_VAL')os.environ['ENV_VAL']の違いは、KeyErrorをraiseするか否かです。

os.getenvos.environ.getのエイリアスであり、メモリや実行速度の比較をする必要もないと思います。公式でもどちらを推奨という話はありませんので、お好みでお使いください。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です