1. ホーム
  2. パイソン

[解決済み】help()出力のスラッシュは何を意味するのか?

2022-04-10 19:35:04

質問

とは何ですか? / の意味は、Python 3.4 の help に対する出力 range の前に、閉じ括弧を付けるのですか?

>>> help(range)
Help on class range in module builtins:

class range(object)
 |  range(stop) -> range object
 |  range(start, stop[, step]) -> range object
 |  
 |  Return a virtual sequence of numbers from start to stop by step.
 |  
 |  Methods defined here:
 |  
 |  __contains__(self, key, /)
 |      Return key in self.
 |  
 |  __eq__(self, value, /)
 |      Return self==value.

                                        ...

解決方法は?

の終了を意味します。 位置のみ パラメータ パラメータ できない をキーワードパラメータとして使用します。Python 3.8 以前では、このようなパラメータは C API でしか指定することができませんでした。

という意味です。 key 引数を __contains__ は位置によってのみ渡すことができます ( range(5).__contains__(3) )、キーワード引数としてではなく、( range(5).__contains__(key=3) というように できる 純粋なPythonの関数で位置引数で行うことができます。

また 引数クリニック のドキュメントを参照してください。

引数クリニックですべてのパラメータを位置指定のみとする場合は / を、最後のパラメータの後に、パラメータ行と同じようにインデントして1行で記述してください。

と、(ごく最近追加された Python FAQ :

関数の引数リストにあるスラッシュは、その前のパラメータが位置指定のみであることを示します。位置のみのパラメータとは、外部で使用可能な名前を持たないパラメータのことである。位置のみのパラメータを受け付ける関数を呼び出すと、引数はその位置のみに基づいてパラメータにマップされます。

この構文は、Python言語仕様の一部になりました。 バージョン3.8現在 をご覧ください。 PEP 570 - Pythonの位置のみのパラメータ . PEP 570 よりも前に、この構文は将来 Python に取り込まれる可能性があるため、既に予約されていました。 PEP 457 - 位置のみのパラメータのための構文 .

位置のみのパラメータは、APIをよりすっきりさせ、C言語のみのモジュールの純粋なPython実装をより一貫性のある、保守しやすいものにします。また、位置のみのパラメータはほとんど処理を必要としないので、Pythonコードの高速化につながります。