Pythonのメソッド一覧を紹介!基礎知識についても解説
computer
Pythonのメソッド一覧を紹介!基礎知識についても解説
アンドエンジニア編集部
2021.06.21
この記事でわかること
Pythonのメソッドは「インスタンスメソッド」「クラスメソッド」「スタティックメソッド」の3種類
Pythonはシンプルな文法で、初心者でもPythonを学習する方が増加傾向にある
Pythonにはメソッド一覧を取得する方法がある

Pythonのメソッド一覧

man

Pythonの特徴として、文法がシンプルであることから、 プログラミング初心者や未経験の方でもWebアプリ・Webサービスの開発を短期間でできることが挙げられます。そのため、近年注目を浴びているプログラミング言語の1つといえるでしょう。

また、Pythonのメソッドの種類には「インスタンスメソッド」「クラスメソッド」「スタティックメソッド」があります。ここでは、それぞれのメソッドの概要について詳しく紹介します。

インスタンスメソッド

Pythonにおけるインスタンスメソッドは、インスタンス化してから呼び出す必要があります。インスタンス化とは、オブジェクト指向型のプログラミングにおいて、クラスを基とした実際の値のデータを生成することです。またインスタンスメソッドは、一般的なメソッドのことを指します。

第一引数には、クラスのインスタンス自身を表す要素が必要です。引数名には特定の決まりはありませんが、暗黙のルールとして「self」を利用する場合が多いです。例えば、インスタンスメソッドは、「〇〇〇.×××」のようにインスタンス変数にアクセスすることもできます。

クラスメソッド

Pythonにおけるクラスメソッドは、クラスをインスタンス化しなくても呼び出すことができます。また、インスタンスからでも呼び出すことも可能です。メソッドに対して「@classmethod」を付けることで、クラスメソッドを実装することができます。第一引数にはクラス自身を表す要素が必要で、インスタンスメソッドと同様に、引数名には決まりはありませんが「cls」を利用することが多いです。

スタティックメソッド

Pythonにおけるスタティックメソッドは、インスタンス化する必要なく、呼び出すことができます。また、インスタンスからでも呼び出すこともできます。さらに、クラスをインスタンス化する必要なく、呼び出すことも可能なメソッドです。「self」や「cls」などのインスタンスやクラスを表す変数は不要です。メソッドに対して「@staticmethod」を付けることで、スタティックメソッドを実装することができます。

Pythonの基礎知識

student

近年ではPythonは、AI・ブロックチェーン技術などの最先端IT技術に使用されることも多く、非常に需要が高く、将来性もあるプログラミング言語です。そのため、Pythonを学習する方も増加傾向にあります。TIOBE Softwareは、2021年1月に1年間で最も注目を集めたプログラミング言語を並べた「プログラミング言語オブ・ザ・イヤー(2020年度)」において、「Python」が1位と発表しました。

しかし、Pythonのクラスやメソッドについて理解できていない方や、オブジェクト指向の意味を把握していない方も少なくありません。ここでは、Pythonの基礎知識として、クラス・メソッド・コンストラクタ・インスタンス・継承について詳しく紹介します。 (参考:https://www.tiobe.com/tiobe-index/)

クラスとは

クラスとは、オブジェクトを生成する上で使用される「型」を指します。なお、Pythonにおけるオブジェクトとは「データを抽象的に表現したもの」とされています。クラスからインスタンスを生成することで処理が実行可能です。クラスは、「class」のキーワードの後ろに任意のクラス名を記載して、メソッド・変数を記述していくことで作成することができます。

下記がクラスの一例です。

class classTest(): pass

上記は処理が行われない空のクラスを指します。処理内容が記述されていないため、実行したとしても何も処理は実施されません。実際には、クラスの中にメソッドを記述することで処理を行います。

メソッドとは

メソッドとは、処理のまとまりに対して名前を付けたものを指します。メソッドは、クラスと同様で「def」のキーワードの後ろに任意のメソッド名を記載して、引数を与えることで作成が可能です。なお、引数とは処理を行う際に必要不可欠なメソッドやクラスに引き渡す値を指します。

下記は、クラスの中で「Hello World!」を表示させるメソッドを入力した一例です。

class classTest(): def test(self): print("Hello World!")

上記では「test」というメソッドを作成しています。「test」メソッドを呼び出せば、「Hello World!」を表示させることが可能です。また、複数の処理内容を記述することでさまざまな処理を実行させることもできます。

コンストラクタとは

コンストラクタとは、インスタンスを生成したときに自動的に呼び出されるメソッドを指します。クラスの初期設定などを行う際に使用されるメソッドです。コンストラクタに使用される引数はインスタンスを生成する際に必要となる値となります。

インスタンスとは

インスタンスとは、クラスを基として生成した実体のことを指します。「クラスは設計図、インスタンスは設計図より作成された成果物」と例えられることも多いです。実際の処理では、インスタンスを生成させることで、クラス内の処理が実行できるようになります。

下記は、実際のソースコードの一例です。

``class Test: definit

`(self, x, y): self.x = x self.y = y def Sum(self): self.Sum = self.x + self.y return self.Sum  ins = Test(5, 6) print(ins.Sum())```

以上の実行結果は「11」となります。まずは「Test」クラスの中にコンストラクタである「(init)」とメソッドである「Sum」を記述します。次に、Sumメソッドでは、「return self.Sum」で戻り値を設定します。戻り値とは、返り値とも呼ばれ、プログラムや関数から戻ってくる値のことです。「ins = Test(5, 6)」でコンストラクタに対して引数を渡すことで、インスタンスを生成させることができます最後に、「ins.Sum()」で「Test」クラスの中のSumメソッドを呼び出すことが可能です。

したがって、Pythonではクラスを基としてインスタンスを生成して、メソッドを呼び出しています。型と実体に分類して処理を実行する言語を「オブジェクト指向型言語」と呼びます。オブジェクト指向は、C言語などのように手続きの手順を記述せず、クラスから作成されたオブジェクトの操作としてコーディングを行っていきます。オブジェクト指向型言語の例として、Java・PHP・JavaScript・C++・Swiftなどが挙げられます。

継承とは

コーディングを行っていると、「既存のクラスとほとんど変更点がないけれど、少しだけ変更を加えて新しいクラスを作成したい」という場面に出くわすこともあるでしょう。継承はこの場合に活用すると便利です。継承とは指定した既存のクラスから、メソッドを追加したり削除したりして一部のみを上書きして、新しいクラスを定義することを指します。この際の上書きのことを「オーバーライド」と呼びます。継承を活用すれば、比較的シンプルにコーディングすることができるようになります。

メソッド一覧を取得する方法

coding

クラスの中に多くのメソッドを記載してしまい、煩雑となってしまった場合には下記を実行するとメソッド一覧の取得が可能です。

instance = Test(6,7) for method in dir(instance): if callable(getattr(instance, str(method))): print(method)

以下が実行結果の一例となります。

`` Sumclass delattr dir eq format ge getattribute gt hash init subclass le lt ne new reduce reduceex repr setattr sizeof str subclasshook

Pythonのメソッドについて理解を深めて適切なコーディングをしよう!

startup

これまでに、Pythonのメソッド一覧・Pythonの基礎知識・Pythonのメソッド一覧を取得する方法について解説しました。Pythonのメソッドには、「インスタンスメソッド」「クラスメソッド」「スタティックメソッド」の3種類があります。クラスの中に多くのメソッドを記載してしまい、煩雑となってしまった場合には、メソッド一覧を取得する方法もあります。

Pythonはシンプルな文法で需要や将来性もあるため、初心者や未経験の方でも学習を始める方が多いプログラミング言語の1つです。Pythonはオブジェクト指向型言語であり、型と実体に分類して処理を実行させます。他のオブジェクト指向型言語の例として、Java・PHP・JavaScript・C++・Swiftなどが挙げられます。これからPythonを学習する方は、オブジェクト指向・メソッドやクラスなどの基礎知識を押さえることが大切です。

気になる人のXをフォローしよう!
アンドエンジニア公式LINEでは
新着記事やエンジニアに役立つ情報をお届け!
日々のキャッチアップをお手伝いします!
マイナビITエージェント

編集部オススメコンテンツ

Sponsored
【無料個別転職相談会】アプリケーションエンジニア向け!リモート・在宅勤務で働きたい方へ
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

お問い合わせ・情報提供
はじめて転職される方へ
SE・システムエンジニア(IT/通信/インターネット) 求人一覧

編集部おすすめコンテンツ

Sponsored
【無料個別転職相談会】アプリケーションエンジニア向け!リモート・在宅勤務で働きたい方へ
マイナビITエージェント
Sponsored

アンドエンジニアへの取材依頼、情報提供などはこちらから

Powered by マイナビ AGENT