31

私はこれに出くわしました-私の見解では-奇妙な行動:

"a b c".split(maxsplit=1)
TypeError: split() takes no keyword arguments

str.split()は、意味があるのにキーワード引数を受け取らないのはなぜですか?この動作はPython2とPython3の両方で見つかりました。

4

2 に答える 2

33

このバグその置き換えを参照してください。

str.split()はCPythonのネイティブ関数であるため、ここで説明する動作を示します。

CPython実装の詳細:実装は、ドキュメント化の目的で「名前が付けられている」場合でも、位置パラメーターに名前がない組み込み関数を提供する場合があります。そのため、キーワードで指定することはできません。PyArg_ParseTuple()CPythonでは、これは、引数の解析に使用するCで実装された関数の場合です。

于 2012-07-30T07:07:14.610 に答える
16

str.splitはCで実装された組み込みメソッドです。残念ながら、一部の組み込み関数/メソッドはキーワード引数を受け入れません。このバグレポートを参照してください。

于 2012-07-30T07:07:05.763 に答える