Raspberry Pi 3 & Python 開発ブログ☆彡

Raspberry Pi 3の使い方、設定をわかりやすく解説。Raspberry Pi3 Model B(Element14版)、Raspbian 8.0(NOOBS Ver1.9.2)を使用して開発中。

【スポンサーリンク】

Pythonプログラム入門(クラスの基本)

【スポンサーリンク】

今回はクラスの書き方について紹介しようと思います。クラスの変数/メゾットのタイプとして、インスタンス、クラス、スタティックの3つがあります。スタティッククラスはあまり使う機会がないと思いますので、インスタンスとクラス変数/メゾットの書き方を主に記載したいと思います。

 

クラスの構文

インスタンス変数/メゾット

オブジェクト指向言語でコードを書いている方は、特に難しいところはないと思います。メゾットの第一引数にself(名前はseflではなく、別のわかりやすい名前でもいいらしい)を付ける部分に違和感がありましたが、Pythonコードの決まりですので、慣れるしかないですね。

class MyClassA(object):

    #コンストラクタ
    def __init__(self):
        self.nameA = ""

    def getNameA(self):
        return self.nameA

    def setNameA(self, name):
        self.nameA = name
a = MyClassA()
a.setNameA("A")
print a.getNameA()

 

◇クラス変数/メゾット

クラス変数/メゾットですが、私はあまり聞きなれない言葉だったのですが、言い換えれば静的変数/メゾットのことです。クラスメゾットは関数の前に@classmethodを付けて、メゾットの第一引数にclsを付けます。

class MyClass(object):

    name_class = "classTest"

    @classmethod
    def getName(cls):
        return cls.name

    @classmethod
    def setName(cls, name):
        cls.name = name

print(MyClass.name_class)

MyClass.setName("A")
print MyClass.getName()

 

◇スタティックメゾット

スタティックメゾットの書き方はクラスメゾットとほぼ同じで、関数の前に@staticmethodを付けます。

 

次回は継承について記載します。