【Python】クラス・クラス変数・クラスメソッド・インスタンスについて

Python

はじめに

今回は「Python」で「クラス」「クラス変数」「クラスメソッド」「インスタンス」について、勉強したことを記載していきたいと思います。

 

クラスとは

クラスとは、「定義された一定の振る舞いを持つオブジェクト構造」。つまり。情報の集合や操作を型として扱うことができるように作成するものです。
クラスは「class」キーワードを使用して定義し、クラスの中に使用したい変数やメソッドを定義していきます。

 

定義

class クラス名:

 

class User:

 

初期化とインスタンス変数

クラスには初期化処理「__init__」メソッドを用意し、インスタンス化(使用される時)に最初に必ず呼び出される処理を記述します。インスタンス毎に使用したい変数を、「__init__」メソッド内に定義することでインスタンス変数を定義することができます。

 

定義

class クラス名:

    def __init__ (self, 引数1, 引数2,  . . . .):
        """
        初期化処理
        """

        self.インスタンス変数名 = 値

 

class User:

    def __init__ (self, userId, userName):
        """
        初期化処理
        """
        self.userId = userId
        self.userName = userName

 

メソッド

メソッドは、データに対する操作や処理を記述します。メソッドを呼び出すことで記述した処理を実行することができます。

 

定義

    def メソッド名(self, 引数1, 引数2,  . . . .):
       """
       メソッド処理
       """

 

class User:

    def __init__ (self, userId, userName):
        """
        初期化処理
        """
        self.userId = userId
        self.userName = userName


    def printUser(self):
       """
       ユーザー情報をプリント
       """
       print(self.userId)
       print(self.userName)

 

クラス(インスタンスの作成)の呼び出し

定義したクラスを実際に使用するために、呼び出し元からクラスを呼び出してインスタンス(オブジェクト)を作成します。

 

定義

変数 = クラス(引数)

 

user = User('1','mori')
user.printUser()

 

クラス変数

クラス変数は、インスタンス(オブジェクト)同士で共通にデータを使用する変数です。別々にインスタンスを作成しても、クラス変数は共有して扱われるため値が両方のインスタンス(オブジェクト)によって影響されます。

 

定義

class クラス名:
    
    クラス変数名 = 値
# 呼び出し
クラス名.クラス変数名

 

class User:
    
    callCount = 0

    def __init__ (self, userId, userName):
        """
        初期化処理
        """
        self.userId = userId
        self.userName = userName
        User.callCount += 1 


    def printUser(self):
       """
       ユーザー情報をプリント
       """
       print(self.userId)
       print(self.userName)
user = User('1','mori')
print(user.callCount)
user2 = User('2','mori')
print(user.callCount)

user.printUser()
user2.printUser()

 

ドキュメント

【公式ドキュメント】
3.13.1 Documentation

 

最後に

Pythonの環境構築は、この記事を参照してみてください。
【開発環境構築】VSCodeでPythonを使用するための環境を構築する – SEもりのLog Python

以上、ログになります。
これからも継続していきましょう!!

Pythonサーバーサイド関連
おすすめIT本
良いコード/悪いコードで学ぶ設計入門

「ITエンジニア本大賞2023」技術書部門で大賞を受賞した本です。
・コードの可読性
・普段意識したほうが良いこと
・リファクタリング考え方
等、普段のコードを設計する際に意識することが書かれています。
コードのあるべき姿に迷ったら一度読んでみると良い本です。

仕組みと使い方がわかる Docker&Kubernetesのきほんのきほん

Dockerって何?となったときに私が最初に読んだ本です。
Dockerがどんな仕組みで動いているのか、コマンドでは何を命令しているのかを理解できるように、イラストを多用して説明しています。

1冊ですべて身につくJavaScript入門講座

「ITエンジニア本大賞2024」技術書部門で大賞を受賞した本です。
私が次に読もうと思っている本なのでおすすめとして挙げておきたいと思います。

コメント

タイトルとURLをコピーしました