web-dev-qa-db-ja.com

help(foo)で示されているように、Pythonメソッドシグネチャのスラッシュ "/"の意味は何ですか?

help(foo)によってインタラクティブに返される署名で、/の意味は何ですか?

In [37]: help(object.__eq__)

Help on wrapper_descriptor:

__eq__(self, value, /)
    Return self==value.

In [55]: help(object.__init__)

Help on wrapper_descriptor:

__init__(self, /, *args, **kwargs)
    Initialize self.  See help(type(self)) for accurate signature.

キーワードのみの引数に関連しているのではないかと思いましたが、そうではありません。キーワードのみの引数を使用して独自の関数を作成する場合、位置引数とキーワードのみの引数は、*ではなく/で区切られます(予想どおり)。 /はどういう意味ですか?

27
gerrit

説明したように ここ 、パラメータとしての「/」は、定位置のみのパラメータの終わりを示します( ここ を参照)。つまり、キーワードパラメータとして使用できないパラメータです。 __eq__(self, value, /)の場合、スラッシュは最後にあります。つまり、__init__の場合、自分だけが位置のみであるのに対し、すべてのパラメーターは位置のみとしてマークされます。

20
runDOSrun