プログラミングと工作と

PythonとかPascalとかAVRマイコンとか、コンパイラつくったり電子工作なんかを楽しんでいるおっさんの記録

ファイル分割のテストをしてみた

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を参照しよう!