📖

Pythonのクラスとオブジェクトの基本

2023/11/30に公開

背景

今回でも同じくPythonのクラスに関しての資料を作成するために、書くことになりました。

クラスの定義と概念

クラスとは

オブジェクト指向プログラミングにおいて、データとそれを操作するメソッドをまとめたものです。クラスはオブジェクトの設計図と考えることができ、実際のオブジェクトはこの設計図に基づいて作成されます。例えば、人というクラスを設計する時に、変数は名前、性別、年齢、趣味で、メソッド(機能)としては、挨拶することや自己紹介する機能を作ることができます。また、人というクラスを作成することで、名前、性別、年齢、趣味、挨拶する機能や自己紹介する機能をもつインスタンスを作ることができます。(つまり、形式を決めて、複数の形でコピーすることができます。一言で表現すると、固有のものを作成すると考えても大丈夫だと思いました。)

オブジェクト指向プログラミングの基本概念

オブジェクト指向プログラミングは、プログラムをオブジェクトの集合として捉えるプログラミングパラダイムです。データと処理を一つの単位にまとめることで、コードの再利用性、拡張性、管理のしやすさが向上します。

クラスを作成

シンプルなクラスの定義とインスタンス化

Pythonでのクラス定義は class クラス名: で始まります。インスタンス化はクラス名に括弧を付けて呼び出すことで行われます(例:my_object = MyClass())。

__init__メソッドとは

__init__ メソッドはクラスのコンストラクタとして機能し、クラスのインスタンスが作成される際に自動的に呼び出されます。このメソッドは通常、インスタンスの初期化や属性の設定に使用されます。

属性とメソッド

インスタンス変数とクラス変数の違い

インスタンス変数はクラスの各インスタンスに固有のデータを保持します。これに対して、クラス変数はクラス自体に属し、そのクラスの全インスタンスで共有されます。

インスタンスメソッドの基本

インスタンスメソッドはクラス内で定義される関数で、そのクラスのインスタンスを通じて呼び出されます。これらのメソッドは第一引数に自身のインスタンス(self)を取り、インスタンス変数にアクセスしたり操作したりすることができます。

基本的な例

銀行口座クラスの作成

bank.py
class Banck:
    def __init__(self, balanc=0):
        self.balance = balance
    def up(self, amount):
        self.balance += amount
        return self.balance
    def down(self, amount):
        if amount > self.balance:
            raise ValueError("残高が足りません。")
        self.balance -= amount
        return self.balance

このクラスでは、口座残高の管理、預金、引き出しの機能を使うことができます。各メソッドは口座残高を更新し、新たしい残高を返すことになっています。

参考

https://camp.trainocate.co.jp/magazine/python-class/
https://www.tohoho-web.com/python/class.html
https://and-engineer.com/articles/YK2RaBIAACMAfA2d
https://aiacademy.jp/media/?p=922
https://www.sejuku.net/blog/72161

GitHubで編集を提案

Discussion