Pythonの関数の引数の種類について。仮引数と実引数の違いを解説

Python初心者・入門者に向けて、関数で使う引数についてその種類を解説

今回はPythonの関数の引数について、コードの解説や文法というよりはむしろ「文法用語」の解説です。

特に今回は、

  • 仮引数と実引数の違いと、英語のparameterとargument
  • 仮引数の種類

について解説します。

初心者・入門レベルでは、あまり引数の種類については意識しないままプログラミングを進めることも多いと思いますが、今後プログラミングに慣れていくと引数の種類について知っておいたほうが良い場面が増えると思います。

たとえば、ネットや書籍で様々なPythonの情報を集めるとき、引数についての専門用語を知っているとその情報の理解が捗ることでしょう。

また実際にコードを書くときでも、どこでエラーになっているのか、どうすればエラーを予防できるのかを気づきやすくなると思います。

Pythonの引数は2種類:実引数と仮引数

Pythonの引数には大きくわけてまず実引数と仮引数という区別があります。

まず実引数の説明からいきます。

実引数(アーギュメント、argument)

実引数というは、関数を実際に呼び出す(使う)ときに設定される引数のことです。英語でアーギュメント(argument)と言います。以下の例を見てください。

#関数の宣言
def 関数A (number, str)
    処理

#実引数を設定して関数を実行
関数A (13, 'Hello')

このように定義した関数を呼び出して使う場合に、実際に具体的な引数を設定しますよね。ここでいうと、

  • 数値13
  • 文字列Hello

ですね。

このようなものを実引数と言います。

仮引数(パラメーター、parameter)

#関数の宣言
def 関数A (number, strings)
    処理

#実引数を設定して関数を実行
関数A (13, 'Hello')

逆に、実引数でないものが仮引数です。これを英語でパラメーター、parameterといいます。乱暴にいってしまえば関数を定義するときに設定する引数が仮引数です。

上の例だと、

  • number(数値が入る引数)
  • strings(文字列が入る引数)

です。

仮引数は関数が受け取ることの出来る実引数の型を定義するものと考えられますね。

それではこの仮引数にはどのようなものがあるのでしょうか。次に見ていきましょう。

仮引数の種類:位置引数またはキーワード引数

def 関数A(仮引数1, 仮引数2, 仮引数3,・・・・)

この点、上の仮引数1、仮引数2、仮引数3、・・・・にどのような種類の情報が設定できるかは、公式ドキュメントでは、次のように分類されています。

  • 位置またはキーワードのどちらでも良い仮引数
  • 位置のみの仮引数(位置引数)
  • キーワードのみの仮引数(キーワード引数)
  • 可変長位置仮引数(よく「*args」と表現されているもの)
  • 可変長キーワード仮引数(よく「**kwargs」と表現されているもの)

これら5種類です。

したがって、上の仮引数1、仮引数2、・・・のそれぞれに、これら5種類のうちのどれかを設定していくことになります。

以上のように5種類あるわけですが、それらも大雑把にわけてしまえば結局のところ、

  • 位置仮引数
  • キーワード仮引数

の2種類ですので、仮引数はこれら2種類のうちどれを設定するのか、そしてどんな順番で設定するのかを考えることが重要になります。(上述:重要ポイント-引数の順番と種類

の2種類となります。

ちなみに、引数を表す英語は、Pythonについては上述のように、

  • 仮引数→parameter
  • 実引数→argument

と厳密には区別されているのですが、現実上はあまり区別される全部argument(略してarg)とか書かれていることが多いので、学問として研究するとかでもないかぎり、そのあたりは気にする必要はないみたいですね。

重要ポイント:引数の順番と種類

#関数の宣言
def 関数A (仮引数1, 仮引数2, 仮引数3, ・・・・)
    処理

Pythonの関数でも、上のように引数を複数設定することがありますが、実はこのときの引数を書く順番と、各引数がどのような種類のデータなのかがものすごく重要になります。

これを意識しておいてください。

なお、今回の記事では引数を書く順番とその種類に関するルールについては説明しません。また別の記事で説明する予定です。

また、今回の観点とは別の観点から引数を区別する、位置引数とキーワード引数という区別もあります。これらについは「Pythonの位置引数とキーワード引数についての初心者向け解説」で解説しましたので読んで見てください。

もしみなさんがこれからのプログラミング学習や転職などに悩みがあるならば、現役エンジニアから学べるプログラミングスクールTechAcademy [テックアカデミー]でオンライン講座を受講するのも良いと思います。1人で悩みながら学習を進めるよりもわかりやすく、費やす時間も少なく合理的・効率的に学習できるからです。

Webマーケティングコース

Webアプリケーションコース

データサイエンスコース

機械学習の基礎が学べる「Pythonコース」

など各種の講座が用意されていますので、自分の未来に沿った講座が見つかります。無料で体験できるテックアカデミー無料体験も用意されていますのでお得に利用してみてください。

初心者におすすめプログラミングスクール

One comment

Comments are closed.