2017-07-28 13 views
3

私はpy.checkio.orgで仕事をしています。私は自分自身の関数min()max()を書く練習をしています。私はofficial documentationでこの機能についてのドキュメントを読んでいると私は説明したパラメータに関する驚いpython組み込み関数のパラメータmin()とsorted()

、彼らは次のようになります。min(iterable, *[, key, default])

私はこの構造*[,はどういう意味思ったんだけど理由*args**kwargs、それは、奇妙ですまた、[,arg]もクリアです。 しかし、*[,は非常に奇妙ですが、このパラメータはどういう意味ですか?

P.S sorted() functionには奇妙なパラメータのアスタリスクがあります。sorted(... *, ...)どういう意味ですか?

答えて

3

以下は(OPがリンク先の)Pythonの3に適用されます。


シングルスター(*sortedの関数定義は、以下のすべての名前付きパラメータは、(PEP 3102を参照してください、「キーワードのみの引数」)キーワード引数として供給されなければならないことを意味して。それは次のように動作しないことを意味します。

>>> sorted([1, 2, 3], lambda x: x) 
[...] 
TypeError: must use keyword argument for key function 

代わりに、キーワード引数を経由してそれらのパラメータを指定する必要があります。

>>> sorted([1, 2, 3], key=lambda x: x) 
[1, 2, 3] 

私は, *[, key, default]構文が意味するものとどのような完全にわからないんだけど(それは有効なPythonではなくドキュメンテーションの目的です)しかし、私は開発者が同じことを表現したいと思っています。つまり、それらのパラメータをキーワード引数として指定する必要があります(min a nd maxは、それを実行する唯一の方法である任意の数の位置引数をとることができます)。

+0

私は実際にPython 3 xD –

+0

@OPを開始して学ぶべきです。これは当然正しい答えです。編集済みの鉱山。 –

+0

おかげさまで、私はどのように私はこのgoogle *の行動を探していました。説明をありがとうございます。 –

3

[, key, default]部分はPython構文ではなく、オプション部分(ここでは省略可能な引数)を示す一般的なプログラミング言語の文法構文です。

EDIT:*一部がa_guestの答えで説明されている(注:これは、Python 3のみのためである)

関連する問題