問題タブ [pep570]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - Python 3.8 の位置のみのパラメーターを使用したコーナーケース?
PEP 570で指定され、 Python 3.8で導入された位置のみのパラメーターをいじっていますが、特定のコーナーケースについて疑問に思っていました。
次のように関数を定義するとしましょう (それが良い設計であるか、まったく意味があるかどうかに関係なく):
したがって、1 つの必須パラメータ ( ) と、2 つのオプション パラメータ (および)p1
が続きます。, andまたはand andだけで関数を呼び出すことができます:p2
p3
p1
p1
p2
p1
p2
p3
しかし、キーワード引数を指定できないため、デフォルトの for を維持p1
しながら、 と の引数で呼び出すことはできません。p3
p2
もちろん、これは を発生させTypeError
ます:
PEP 570のすべての例は、位置のみの引数の一部として単一のオプションのパラメーターをカバーしているだけなので、このケースに関する議論や例を見つけることができませんでした:
したがって、私の質問は次のとおりです。呼び出し元に複数のオプションの引数を左から右に提供させ、それらを強制的な順序でオーバーライドさせることは、意図された動作ですか? これは実際に位置のみの引数の機能ですか?
python - Python 3.7 との位置のみのパラメーターの互換性
PEP570 で定義されている新しい位置のみの引数構文を使用したいのですが、python 3.7 との互換性も維持したいと考えています (スクリプトを直接実行するとdef f(a, /, b):
構文エラーが発生します)。とにかくこれを行うことはありますか?
そうでない場合、パッケージのメンテナーは、python 3.7 のサポートが終了するまで、新しい機能の使用を控える必要がありますか?