*そして**それはPythonで何を意味するのでしょうか?そして右のポインタでそれに対処?

*、**は多くの用途を有します。

  • (*)乗算演算子(または文字列の場合には、オペレータ繰り返される)です。他の理由のためのクラスの他のライブラリには、「*」を使用しますが、ほとんど常に何らかの形で乗算してもよいです。
  • (**)、指数演算子である通常の数字でX ** YXY数学的に計算され
    ますが、これらは意外な使い方ではありません-すべての開発者は、利用状況を知っているかもしれません。しかし、私はこの問題はでほぼ確実だと思いますしかし、(少なくとも、初心者のための)最も一般的な望ましくない自治体:

関数の可変パラメータ

**と*演算子は関数定義に表示されます - 例えば:

def func (* args ,** kwargs ): 
	print(args ,kwargs )

自分の役割を理解するには、場所とキーワード引数を知っておく必要があります。

フォームの関数に渡されるすべてのパラメータは重要なパラメータであるため、キーワード引数の関数は、最も簡単に説明します。次に、位置パラメータは、すべての関数呼び出しのパラメータではなく、キーワードパラメータです。<ARGUMENT_NAME> =

(上記のように)戻る私たちの関数定義への指示で(呼ばれる)単一のタプルにすべての位置パラメータを収集することで、説明書で指定された単一の辞書に一緒にすべての重要なパラメータを集めています。共通の名前と規約 - あなたが欲しい何でもそれらを呼び出すことができます。* Argsargs ** kwargskwargsargskwargs

この関数を呼び出すの例は次のとおりです。

>>> FUNC (1 ,2 ,3 ,一个= 4 ,b = 5 ,C ^ = 6 )
(1 ,2 ,3 ){ 'A' :4 ,'B' :5 ,'C' :6 }  		

あなたが見ることができるように、1、2と3のパラメータは、引数のタプルに収集されていると呼ばれ、キーワードのパラメータa、bおよびcはkwargsからで命名辞書に収集されます。

あなたも、位置とキーワード引数一緒に混ぜると、通常のことができます:*引数** kwargsから

def func2 (a ,b ,* args ,c = None ,d = None ,** kwargs ):  
	print(a ,b ,args )
	print ('c =' ,c ,'d =' ,d ,kwargs )  

ここで最初の2つのパラメータは、位置A&B-位置に渡され、残りのパラメータは、タプル引数に充填されています。
さらに、C&dkeywordsは、通常(デフォルト値を提供していない場合)パラメータを獲得し、他の重要なパラメータは、kwargsから辞書に充填されています。

例えば:

>>> FUNC2 (1 ,2 ,3 ,4 ,Ç = 6 ,d = 7 ,ë = 8 ,˚F = 9 )   
1 2 (3 ,4 )  	 
c = 6   d = 7 { 'e' :8 ,'f' :9 }

すべての場合において引数とkwargsからは(またはあなたがそれを呼び出す何でもa)は空にすることができます - 例えば - 上記func2の機能を使用して:

>>> FUNC2 (1 ,2 ,Ç = 6 ,d = 7 ) 
1 2 ()   
c = 6 d = 7 {}  	

この呼び出しでは、唯一の2つの位置AおよびBのパラメータに捕捉されるパラメータは、そうない引数はタプルに包装することができます。同様に、2つだけのキーパラメータ(C&D)、したがってない追加キーワードパラメータはkwargsから辞書に包装することができます。

箱から出して

(上記のように)あなたが関数定義演算子関数パラメータパッケージタプルや辞書で*と**を使用することができ、あなたはタプルまたはアンパック辞書機能パラメータにそれらを使用することができます。たとえば、この機能を使用しました:

def func3 (a ,b ):
	print(a ,b )

この関数は、2つのパラメータの場所を取る - あなたはすでにタプルのこれら2つのパラメータを持っている場合は、2つのいずれかを行うことができます。

>>> T0 = (0 ,1 ) 
>>> func3 (t0 [ 0 ],t0 [ 1 ])
0 1	
>>> func3 (* t0 ) 
0 1	 

ここでは、位置パラメータのタプルを解凍する作業。機能的に同等の両方が、使用しているが、オペレータの方法は、別の実行時のバージョン、およびより読みやすい(エラーが少ない可能性がある)の約60%です。

同様に、辞書はとしてキーワード引数を抽出することが可能である - この機能を使用するには、キーワード引数を取ります。

DEF FUNC4 (KW1 = 0 ,KW2 = 1 ): 
	print(KW1 ,KW2 }

あなたが希望する値が含まれている辞書を持っている場合は、2つのオプションがあります。

>>> D0 = { 'KW1' :10 ,'KW2' :11 }  
>>> FUNC4 (KW1 = D0 [ 'KW1' ],KW2 = D0 [ 'KW2' ])
10 11 	
>>> func4 (** d0 )
10 11	

第二の選択肢-読みやすいと間違って行く可能性が低いと、約70%の高速化を開梱辞書を使用します。
マイクロチャネル公共番号「フルスタック学習巣」

おすすめ

転載: blog.csdn.net/gzyiCG/article/details/91957863