Python - クラス

公開日:2019-03-04

1. 概要

クラスの使い方です。
クラスは、データと操作をまとめたものです。
データは変数(プロパティ)、操作は関数(メソッド)にあたります。

使用する変数や関数が少ない場合は問題ありませんが、
使用する変数や関数が多くなってきた場合、名前の重複や、どの変数をどの関数が使っているのかなどの把握が難しくなってきます。
そこで、クラスを使うことにより、変数と関数をグループ化して整理することにより、使いやすくすることができます。

また、クラスは設計図に該当するため、基本的には直接使いません(直接使う時もあります)。
クラスからインスタンスと呼ばれる実体(オブジェクト)を生成して、インスタンスの方を使います。
クラスからインスタンス(オブジェクト)を生成するには、クラス名を関数として実行します。

2.1 サンプル

メソッド(関数)の1番目の引数は、慣例で self にします。呼び出す際の引数は不要です。
self にはインスタンスが入ります。他の言語の this に該当します。
ソース
class Calculator:
    
    #足し算
    def add(self, value1, value2):
        return value1 + value2

    #掛け算
    def multiply(self, value1, value2):
        return value1 * value2

#インスタンス(オブジェクト)の生成
calc = Calculator();

#メソッド(関数)の実行
result = calc.add(1, 2)

print(result)

実行結果
3

2.2 コンストラクタ

__init__ と言う名前のメソッドはコンストラクタと呼ばれ、インスタンス生成時に実行されます。
コンストラクタでは、初期化処理などを行います。
ソース
class Counter:

    def __init__(self):
        print("コンストラクタ")
        self.count = 0
        
    def countup(self):
        self.count += 1
        return self.count
        
counter = Counter()
print( counter.countup() )
print( counter.countup() )
print( counter.countup() )

実行結果
コンストラクタ
1
2
3