2012-07-06 10 views
15

Python関数の引数で、識別子なしの*は何を意味しますか?ここ はPython3.2で動作する例です。私にとってPython3関数で識別子なしの単一の*は何を意味しますか?

class Shape: 
    def __init__(self, *, shapename, **kwds): 
     self.shapename = shapename 
     super().__init__(**kwds) 

自己の後に星が奇妙です。

私は(行46から)ここでそれを発見した

http://code.activestate.com/recipes/577720-how-to-use-super-effectively/

+1

PEPを指している人のための余分なポイント;)(私はこれを説明するPEPを読むことを覚えていますが、私はどこか、それが何であったかを覚えていません** /私はgoogle **に戻ります) – KurzedMetal

答えて

13

唯一*は、以下のすべての引数がキーワードのみの引数、つまり、彼らだけではない位置として、自分の名前を使用して提供することができていることを示しています引数。

詳細はPEP 3102を参照してください。

+1

つまり、 'Shape(shapename = 'Circle')'のような新しい 'Shape'オブジェクトを作成するときに' shapename'を明示的に追加する必要があります。 – KurzedMetal

関連する問題