collections.py
昨日のソースコードを読んでいました。
このnamedtuple
関数では、template
文字列が生成さexec
れ、一時的な名前空間で編集されます。
名前空間 dict では、と に名前property
が変更され_property
ます。tuple
_tuple
この背後にある理由は何なのだろうか。この名前変更により、どのような問題を回避できますか?
collections.py
昨日のソースコードを読んでいました。
このnamedtuple
関数では、template
文字列が生成さexec
れ、一時的な名前空間で編集されます。
名前空間 dict では、と に名前property
が変更され_property
ます。tuple
_tuple
この背後にある理由は何なのだろうか。この名前変更により、どのような問題を回避できますか?
一般に、アンダースコア名は、名前空間をクリーンに保つために標準ライブラリで使用されることがあります。
_tupleの場合、フィールド名として「tuple」を使用できるため、これが必要でした。
>>> Example = namedtuple('Example', ['list', 'tuple', 'property'])
>>> e.list
[10, 20, 30]
>>> e.tuple
(40, 50, 60)
>>> e.property
'Boardwalk'
キーワード名の競合を回避します。
架空のリストがあったとしましょう['when', 'who', 'why', 'where', 'with']
すなわち。my_name_tuple.with
通訳が痛くないとタイプすることはできません。
namedtupleのドキュメントをよく読んでください。そうすれば、それを入手できるはずです。