ファイル分割のテストをしてみた
Python本を読みつつ見様見真似でテスト用tokenクラスを作って見た。
class tke:
token = ''
def gettoken(self, tok):
self.token = tok
これを「tkn.py」というファイル名で保存する。
そして、別ファイル「classtest.py」を以下の内容で作った。
from tkn import *
token = tke()
print(token.token)
token.gettoken('test')
print(token.token)
で、実行したのが↓
~/PasAvr/test$ python classtest.py
test
~/PasAvr/test$
ファイル「classtest.py」から、ファイル「tkn.py」の値tokenを読めてますね。
昔読んだ(そして挫折した)Javaの本では、クラス内変数はprivateだのpublicだのでアクセス範囲を指定したり、そもそも変数を直接読み書きしてはダメ! セッターだのゲッターだのを使え!と言っていたと思ったが、Pythonはそのへんかなりおおらかなんですね。
もっとも、今回はこのおおらかさが良い。tokenをあちこちの関数から参照出来そうだ。
プロのプログラマには、経験や痛い体験などから、体感的にカプセル化の有用性が理解できるのだろうが、素人の僕には、正直その良さがわからなかった。
わからないものは使いこなせないので、カプセル化のことは全然気にせず、どしどしあちことからtokenを参照しよう!