6

デフォルトの引数値はPythonによってキーワード引数として認識されますか?区別がつかない

このスレッドを理解できません:通常の引数とキーワード引数

ちなみに、ほとんどのチュートリアルとビデオシリーズはPython2 .*を対象としているようです。Python2ではなくPython3を学ぶ必要がありますか、それとも後で簡単に移行できますか?私は好奇心からこれを学んでいます。

前もって感謝します。

4

2 に答える 2

5

両方の概念は(ほとんど)異なります。

関数定義側では、名前を持つパラメーターに名前を付け、可変個引数の拡張機能を使用します。1つは位置引数(タプルを与える)用で、もう1つはキーボード引数(辞書を与える)用です。

例:

def f(a, b=5, *c, **d): return a, b, c, d

この関数には、定位置またはキーワードを介して使用できる2つの名前付きパラメーター(aおよび)があります。そして与えられた他のすべてを取ります。bcd

この関数は、位置引数とキーワード引数を使用して呼び出すことができます。

f(1)
f(a=1)

両方が戻る

1, 5, (), {}

名前付きパラメーターには、位置引数とキーワード引数が割り当てられているためです。

あなたもすることができます

f(a=5, foo=12) or f(5, foo=12) # -> 5, 5, (), {'foo': 12}
f(1, 2, 3) # -> 1, 2, (3,), {}

最後の例では、位置引数1と2が名前付きパラメーターab;に与えられています。3を超えるものはタプルに入れられcます。

できません

f(b=90) # no value for a
f(12, a=90) # two values for a

それでも不明な点がある場合はお知らせください。

于 2012-10-14T07:11:57.727 に答える
1

私が見るところ、人々は両方の用語を同じ意味で使用する傾向があります

この質問はかなり古いようですが、とにかく私の2セントを追加します。

Default-Arguments(別名「Default-Parameters」)という用語は、関数を定義するときに一般的に使用する用語です。defステートメントのヘッダー内:

関数を定義するとき、次のように頭の中でそれを見ることができます。

def function1(positional_parameter, default_parameter="default-output"):
    pass

ただし、関数を呼び出そうとするときは、通常、「キーワード引数」という用語を使用します。

関数を呼び出すと、次のように頭の中でそれを見ることができます。

function1(positional_argument, keyword_argument="change-output") 
  • これが理にかなっていることを願っています*
于 2018-05-20T09:32:16.260 に答える