2016-02-25 9 views
6

この質問は、PEP 448 -- Additional Unpacking Generalizationsに由来し、私が知っている限り(2.xにバックポートされていない限り)、Python 3.5に含まれています。具体的には、セクション欠点には、以下が注目される:代入文の左辺と右辺のStar *演算子

*elements, = iterable原因elements一方でlistelements = *iterableことが、elementstupleさせます。この理由は、構築物に慣れていない人々を混乱させる可能性があるからです。

>>> *elements, = iterable 
>>> elements 
[1, 2, 3, 4] 

秒の場合についてtupleが作成されている間:

>>> elements = *iterable, 
>>> elements 
(1, 2, 3, 4) 

をコンセプトに不慣れなので確かに最初のケースはlistをもたらし、iterable = [1, 2, 3, 4]ため、保持ん

、 私は混乱しています。誰もこの行動を説明できますか?スター付き表現は、それが存在する側によって異なって動作しますか?

答えて

関連する問題