やってみる

アウトプットすべく己を導くためのブログ。その試行錯誤すらたれ流す。

Pythonでクラスを作ってみた

Pythonでクラスを作ってみた。

前回まで

ラズパイのCPU温度を計測したい→Fusion Tables API→OAuth2.0→google-api-python-clientPython

Pythonインタプリタの対話モードを実行してみた
Pythonのモジュールとパッケージを作ってみた
Pythonで関数を作ってみた

開発環境

成果物

GitHubHelloClass

クラス

class ClassName:
    def __init__(self):
        self.memberVar = 100
    def _private_method(self):
        return None
    def public_method(self):
        return None

C++で書くと以下のようになる。

class ClassName {
public:
    ClassName();
    ~ClassName();
    int PublicMethod();
private:
    int var;
    int PrivateMethod();
};
ClassName::ClassName() {
    var = 100;
}
int ClassName::PublicMethod() { return 0; }
int ClassName::PrivateMethod() { return 0; }

Pythonが楽というより、C++が異常に面倒。Pythonにも面倒なところがある。「メソッドの第一引数にselfが必須」なところ。

コンストラクタ

  • __init__という関数名は固定らしい

面倒なことはない。そのルールを覚えればいいだけ。変数の宣言と初期化が一緒にできるからC++より楽。

selfがウザい

こちらで詳しく説明されていた。感謝。しかし、Pythonの基礎を理解していない私には難しすぎた。

こちらのほうが、いや、やっぱり難しい。

メソッドをコールバック関数として渡すのが非常に簡単になる

わかりそうでわからない。基礎知識がなくて理解できず。

クラスの使いどころ

単純な使い方だけしたければモジュールと関数を使ったほうが楽そう。

クラスの使いどころはどこなのか。今わかるのは、「異なる状態を持たせたいとき」くらい。それってC言語でいう構造体の認識でしかない。クラスはもっと複雑なはず。しっかり把握するには、オブジェクト指向Pythonの仕様をもっと知る必要があるだろう。クラスは書けたけど、使いこなせる気がしない。

所感

細かいことは放置。これで大枠は作れるだろう。あとは分からなくなったときに調べればいいや。