プロが教えるわが家の防犯対策術!

REPLで

import math

help(math.prod)
とすると

Help on built-in function prod in module math:

prod(iterable, /, *, start=1)
Calculate the product of all the elements in the input iterable.

:
:

と出力されますが

prod の引数のところ
/ は恐らく順序付引数の終わりを示しているのだと思いますが、
* はなんでしょう?

無視しても特に支障はないみたいですが
気になってます。

A 回答 (1件)

何か新しい構文要素っぽい。


PEP 570ってんで導入されたん?

PEP570:
https://peps.python.org/pep-0570/

つまり関数定義の際に、

def 関数名(順序付のみ引数, /, 順序またはキーワード引数, *, キーワード引数):

と指定する際の「セパレータ」の模様。

Python docだとこの辺に書いてあるっぽい。

複合文/関数定義:
https://docs.python.org/ja/3/reference/compound_ …

結果、かなり新しい定義みたい。
Pythonはこういうアドホックな変更がちょくちょくあるから(ry
    • good
    • 0
この回答へのお礼

ありがとう御座います。助かりました。
ヘルプだけの記述法だと思ったら
言語の新仕様だったんですね。

3.8のチュートリアルと言語仕様で
関数定義のパラメータ定義の仕様が変更されていることを
確認しました。

3.6以降、言語仕様をろくに追ってなかったのですが
結構基本に手が入ってますね。(^_^;)

お礼日時:2022/12/11 21:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!