なんだかGoodVibes

日々の勉強メモです。

【Python】クラス定義

こんにちは。
本日は、Pythonメモです。

定義方法

一番シンプルな定義は以下です。
以下は、中身のないクラスを定義しています。

class MyClass():
    pass

インスタンス化は、クラス名()とします。

m = MyClass()


docstring

クラスのdocstring(ドキュメンテーション文字列)は以下のように記載します。

class MyClass():
    """Sample Class"""
    pass

docstringを取得するには、__doc__を使用します。

m = MyClass()
print(MyClass.__doc__)

実行結果は以下です。

Sample Class


クラス変数

クラス変数はクラス名.変数名 で取得できます。
クラス変数は、すべてのインスタンスで共通です。

class MyClass():
    """Sample Class"""

    num = 1000
print(MyClass.num)

実行結果は以下です。

1000

クラス変数は動的に追加もできます。

MyClass.color = 'Yellow'
print(MyClass.color)

実行結果は以下です。

Yellow


インスタンス変数

インスタンス変数はインスタンス名.変数名 で取得できます。
インスタンス変数は、それぞれのインスタンスで固有のデータです。

以下のサンプルは、コンストラクタ(__init__)で設定しています。

class MyClass():
    """Sample Class"""

    def __init__(self):
        self.name = 'Bob'
m = MyClass()
print(m.name)

実行結果は以下です。

Bob

クラス変数同様、動的に追加することも可能です。

m = MyClass()
m.age = 123
print(m.age)

実行結果は以下です。

123


メソッド

メソッドは、第1引数に自クラスのインスタンスを受けます。
第2引数以降に引数を設定します。

class MyClass():
    """Sample Class"""

    size = 0

    def __init__(self):
        self.name = 'Bob'

    def setSize(self, s):
        self.size = s
m = MyClass()
m.setSize(100)
print(m.size)

実行結果は以下です。

100



以上です。