elderwandの日記: なんちゃってオブジェクト指向
ここに書くほどのことでもないが、自己満足のために書いておく。
プログラミングしてると、モジュラー化というか、まとまった作業を別立ての関数(ぽいの)に仕立てたくなる。特に Python のようにインデントを強制される言語では、見た目にも深いインデントがかっこ悪いのでそうなる。
そうすると、こんどは関数で使う変数をグローバルにしたくなる。でないと、関数の引数とか戻り値とか、やたらと受け渡しが多くなって面倒くさい。ところが、ま、グローバル変数を使うのは、また別の意味でかっこ悪い。
そこで、別立て関数もメインもまとめて class にしてしまう。つまり、オブジェクト指向の導入である。グローバルにしたかった変数はここではメンバ変数である。(お、かっこいい)つまり、こんな感じでベタの手続きを class に変えることができる。
ベタ
a = 'blar'
b = 'foo'
print a + b
オブジェクト指向
class Adder:
def __init__(self, a, b):
self.a = a
self.b = b
def get_result(self):
return self.a + self.b
if __name__ == '__main__':
adder = Adder('blar', 'foo')
print adder.get_result()
つまり、なんでもいいから、グローバル変数かっこわる、、、と思ったら、「オブジェクト指向」を使いましょう(なんちゃって)なのだ。
なんちゃってオブジェクト指向 More ログイン