2016-12-10 4 views
0

は、おそらく私は、引数 パイソン&ジャンゴ:**どういう意味

def sample(x, **other): 
    print(x, other.keys) 
sample(x=2,y=3,z=4) 

の不特定多数を渡す**

パワー

x ** y # x power y equivalent to pow(x,y) 

の以下の用途を知っているが、私は時に理解していません以下のように使用される(Serializers

def create(self, validated_data): 
    return Comment(**validated_data) 

誰かが私にそこで起こっていることのヒントを与えることができます

答えて

1

これは、2番目の例の反対です。関数の定義時に、演算子**はすべての名前付き引数を集めて辞書を作成します。あなたは

values = {'x': 1, 'y': 2} 
f(**values) 

を持っている場合、関数を呼び出すとき、それは辞書をとり、だから、名前付き引数に

それを壊し、それは

f(x=1, y=2) 
のと同じです
関連する問題