Pythonのコンストラクタでデフォルト引数を活用する方法を現役エンジニアが解説【初心者向け】

初心者向けにPythonのコンストラクタでデフォルト引数を活用する方法について現役エンジニアが解説しています。コンストラクタは、インスタンス生成時に変数を設定するためのメソッドのことです。今回はデフォルトの引数を利用してみましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

Pythonのコンストラクタでデフォルト引数を活用する方法について、TechAcademyのメンター(現役エンジニア)が実際のコードを使用して、初心者向けに解説します。

 

Pythonについてそもそもよく分からないという方は、Pythonとは何なのか解説した記事を読むとさらに理解が深まるでしょう。

 

なお本記事は、TechAcademyのオンラインブートキャンプPython講座の内容をもとに紹介しています。

 

田島悠介

今回は、Pythonに関する内容だね!

大石ゆかり

どういう内容でしょうか?

田島悠介

Pythonのコンストラクタでデフォルト引数を活用する方法について詳しく説明していくね!

大石ゆかり

お願いします!

 

コンストラクタとは

コンストラクタとは、「クラスのインスタンス生成時に、インスタンス変数を設定するためのメソッド」のことです。

コンストラクタを書くときには、__init__()という特殊メソッドを使用しましょう。。

このメソッドの中にインスタンス変数の定義を以下のように記述します。

def __init__(self, 引数リスト)
#インスタンス変数の定義

このselfという引数はインスタンス自身を表すキーワードです。

クラス内のメソッドの第一引数には必ずselfを渡す必要があります。

 

デフォルト引数とは

デフォルト引数とは、その名のとおり関数に対してデフォルトで設定しておく引数のことです。

関数を定義する際に「引数名=デフォルトで設定したい値」といった形で設定することができます。

デフォルト引数を設定しておくことで、関数をコールするときにその引数を省略してコールでき、省略してもデフォルトで設定した値が使われます。

また、関数コールの際に「デフォルト引数名=設定したい値」とすれば、デフォルト値以外の値を設定することもできるでしょう。

現状では、デフォルト引数はオン・オフの機能などに用いられることが多くなっています。

例えば、リストのメソッドの中にsort()という有名なメソッドがあります。

これは通常はリストを昇順に並び替えるためのものです。しかし、デフォルト引数に「reverse=True」とすれば、降順に並び替えることが可能です。

 

[PR] Pythonで挫折しない学習方法を動画で公開中

コンストラクタでデフォルト引数を利用してみよう

ここからは実際にコードを書いていきましょう。

以下、Pythonでデフォルト引数を設定するサンプルコードです。

class Human:
    def __init__(self, name="tanaka", age=20):
        self.name = name
        self.age = age
    def show(self):
        print(f"My name is {self.name}. My age is {self.age}.")
    hm1 = Human()
    hm1.show()
    hm2 = Human("sato", 21)
    hm2.show()
    hm2 = Human(age=30)
    hm2.show()

引数に何も設定していないときはデフォルト値が設定され、引数を設定したときはその値が入っているのが確認できました。

実行結果

My name is tanaka. My age is 20.
My name is sato. My age is 21.
My name is tanaka. My age is 30.

 

まとめ

この記事ではコンストラクタでデフォルト引数を活用する方法についてみてきました。

デフォルト引数を利用すると、関数の設計の自由度が高まりますので、是非使いこなせるようになりましょう。

 

執筆してくれたメンター

柴山真沙希(しばやままさき)

大手IT企業などでエンジニアとして2年ほど勤務した後、個人事業主としてプログラミングスクール「エンペサール」を経営。

子供から大人まで幅広い層を対象にプログラミングを教えている。

得意言語はPython, HTML, CSSで、機械学習やデータ分析、スクレイピングなどが得意。

サッカー観戦や読書が趣味である。

 

大石ゆかり

Pythonのコンストラクタでデフォルト引数を活用する方法がよく分かったので良かったです!

田島悠介

ゆかりちゃん、これからも分からないことがあったら質問してね!

大石ゆかり

分かりました。ありがとうございます!

 

TechAcademyでは、初心者でも最短4週間で、Pythonを使った人工知能(AI)や機械学習の基礎を習得できるオンラインブートキャンプを開催しています。

また、現役エンジニアから学べる無料体験も実施しているので、参加してみてください。