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変数を覗くためだけの関数をわざわざ書いて…といったことを経験した身からすると、エレガントな解決方法だな〜と思います。