9

collections.py昨日のソースコードを読んでいました。

このnamedtuple関数では、template文字列が生成さexecれ、一時的な名前空間で編集されます。

名前空間 dict では、と に名前propertyが変更され_propertyます。tuple_tuple

この背後にある理由は何なのだろうか。この名前変更により、どのような問題を回避できますか?

4

2 に答える 2

10

一般に、アンダースコア名は、名前空間をクリーンに保つために標準ライブラリで使用されることがあります。

_tupleの場合、フィールド名として「tuple」を使用できるため、これが必要でした。

>>> Example = namedtuple('Example', ['list', 'tuple', 'property'])
>>> e.list
[10, 20, 30]
>>> e.tuple
(40, 50, 60)
>>> e.property
'Boardwalk'
于 2012-07-07T01:53:27.180 に答える
0

キーワード名の競合を回避します。

架空のリストがあったとしましょう['when', 'who', 'why', 'where', 'with']

すなわち。my_name_tuple.with通訳が痛くないとタイプすることはできません。

namedtupleのドキュメントをよく読んでください。そうすれば、それを入手できるはずです。

于 2012-07-07T01:53:37.877 に答える