あらすじ
Python では Javascript で言う所の オブジェクトのプロパティの値を get() でも取得できると思っていました。 そんなわけでこんなコードを書いてみた。
user = {'name': 'okamuuu'} print user.get('name')
レビューで指摘されました
name は必ず存在することが期待されるので user['name'] に変更して KeyErrorはエラーとして検知できるようにしていただけますでしょうか?
user.get('name') と user['name'] の違いわかっていない
プロパティが存在している場合は同じ挙動
>>> user = {'name': 'okamuuu'} >>> print user.get('name') okamuuu >>> print user['name'] okamuuu
プロパティが存在していない場合は挙動が異なる
>>> print user.get('nameeee') None >>> print user['nameeeee'] Traceback (most recent call last): File "<stdin>", line 1, in <module> KeyError: 'nameeeee'
というわけで user['name'] と書いてあるのに name がセットされていないと KeyError が発生するのでより厳密に書きたいときはそうするとよいでしょう
おまけ
以下のようなコードは
>>> userB = {} >>> print userB.get('name') or 'okamuuu' okamuuu
こんな風に書くこともできます
>>> print userB.get('name', 'okamuuu') okamuuu