【ぱらめーた】

パラメータ とは?

💡 関数・コマンド・設定に渡す「調整つまみ」、動作を変えるための入力値
📌 このページのポイント
パラメータと引数(アーギュメント)の違い 関数定義(パラメータ=仮引数) function greet( name , age ) ↑ パラメータ(受け取る側の「箱」) 呼び出し時に値を渡す 関数呼び出し(引数=実引数) greet( "太郎" , 25 ) ↑ 引数(渡す側の「実際の値」) パラメータ = 定義時の変数名 引数 = 呼び出し時の実際の値
パラメータ(仮引数)と引数(実引数)の違いのイメージ
ひよこ ひよこ

パラメータと引数って同じ?

ペンギン先生 ペンギン先生

厳密には違う。`function add(a, b)`の`a`と`b`がパラメータ(仮引数)。`add(3, 5)`の`3`と`5`が引数(実引数)。ただ実際の会話では混用されることが多く、「引数を渡す」と「パラメータを渡す」がほぼ同じ意味で使われていることも多い。

ひよこ ひよこ

URLのパラメータって何?

ペンギン先生 ペンギン先生

URLの`?`以降の部分。例えば`/search?q=python&page=2`では`q=python`と`page=2`がクエリパラメータ。検索キーワード・ページ番号・フィルタ条件などをURL経由でサーバに渡すのに使う。`&`で複数のパラメータをつなげられる。

ひよこ ひよこ

機械学習でのパラメータは?

ペンギン先生 ペンギン先生

ニューラルネットワークの「重み(weight)」と「バイアス(bias)」のこと。学習を通じてデータから自動的に最適な値に調整される。GPT-4は推定1.8兆個のパラメータを持つと言われる。「パラメータ数が多い=表現力が高いが計算コストも大きい」という関係がある。

ひよこ ひよこ

デフォルト引数って便利だけど注意点ある?

ペンギン先生 ペンギン先生

Pythonでよくあるミスがあって、デフォルト引数にリスト(ミュータブルオブジェクト)を使うと、関数呼び出しのたびに同じリストが共有されてバグになるんだ。「def func(items=[])」は危険で、「def func(items=None)」にして関数内でNoneチェックするのが定石だよ。

ひよこ ひよこ

そんな罠があるんだ!パラメータの数が多すぎるとよくないって聞くけど、何個くらいが限度なの?

ペンギン先生 ペンギン先生

一般的には3〜4個が目安で、それ以上ならオブジェクト(設定オブジェクトやBuilderパターン)にまとめるのが良いとされているよ。Googleのコーディング規約でも関数の引数は少ないほど良いとされている。引数が多い関数は「やることが多すぎる」サインで、関数を分割すべきかもしれないんだ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
パラメータって出てきたら「関数・コマンド・設定などに渡す値・変数、動作を調整するための入力」と思えばOK!
📖 おまけ:英語の意味
「Parameter」 = 助変数・調整値
💬 ギリシャ語のpara(傍ら)+metron(測るもの)から。数学では「方程式の係数」の意味で使われ、コンピュータサイエンスではその流れで「関数への入力変数」を指すようになった
← 用語集にもどる