Pythonistaで自分専用RPN電卓を作る(01)
RPN電卓アプリは数が少なくて、自分にあったものがない…。 ないなら作ってしまおう。
Pythonistaとは
こちらのBlogに詳細があります。参考にさせて頂きました。
iOS上で動作する革命的ものづくり環境「Pythonista 3」の魅力をとくと語る
まずはコアの構造を作ってみる
A級B型C++入門という本で、行き当たりばったりにコードを修正しながら仕上げていくやりかたを、B型人間のプログラミングと呼んでました。
それでいうと、僕は正にB型プログラマーです。
まずは、RPN電卓のコア構造になるスタックを作ってみます。Pythonではリストを使えば、あっという間です。 C言語の時代を知る人間としては、感動的な簡単さです。
class RPN(): _stack = [] def push(val): RPN._stack.append(val) def pop(): return RPN._stack.pop()
スタックの中身は外部からいじるものではないので、アンダースコア"_"をつけてプライベート変数、ということにしました。 Pythonにはアクセス制限の機能はなく、アンダースコアをつけても、実際には外部から参照できてしまうのですが、「アンダースコアで始まる変数はプライベート変数」というお約束と周知して、擬似的にアクセス制限のを実現しているそうです。 C++のように、いちいちPublicだ、Privateだと指定してるのに、デバッグのためにPrivate変数を覗くためだけの関数をわざわざ書いて…といったことを経験した身からすると、エレガントな解決方法だな〜と思います。