伊田生活ブログのロゴ
HOME  >  勉強
カテゴリー : 勉強 - プログラミング
•Python •class


公開日:
最終更新日:

【Python】classを使う


img_1

こんにちは。アマチュアPythonユーザーの伊田です。

Pythonのclassの使い方を調べてみました。


趣味で、Pythonの簡単なコードを書くことがあります。関数の数は数個、行数は数十行ほどの簡単なスクリプトです。

現在僕は、少し長めのコードを書いています。コードが長くなってきたので、一つのファイルだけでは読みにくくなってきました。そこで、複数のファイルを用意し、関数はそれらのファイルに分散させることにしました。また、別のファイルから参照されない関数(つまり、ファイル内からしか参照されない関数)は、プライベートにすることにしました。しかし、プライベートにする方法が分かりません。

Pythonにおいて、プライベートな関数はどのように作るのでしょうか。

なお、この記事では「別ファイルから直接参照できない関数」のことを「プライベートな関数」といいます。

インターネットで検索してみたところ、classという仕組みを利用することで プライベートな関数 を作れそうということがわかりました。


classを使ったサンプルコードを以下に記します。

[main.py]
import consumption_tax #別ファイルをインポートする。

productA = 200
productB = 100
total = productA + productB #合計金額 : 300(円)

taxIncluded = consumption_tax.calc(total) #税込み価格を計算する。

print(taxIncluded) #330.0
[consumption_tax.py]
def calc(price):
    calcurated = privateMethods.multiplyTaxRate(price)
    return calcurated

#このファイルのプライベートな関数をまとめたクラス
class privateMethods:
    #税抜き価格を税込み価格に変換する関数(メソッド)
    def multiplyTaxRate(price):
        taxRate = 0.1 #税率10%とする。
        multipliedPrice = (price * (1 + taxRate))
        return multipliedPrice

productAproductBの合計金額に消費税(10%)をかけ、価格を表示するスクリプトです。#main.pyを実行すると、”330.0” と表示されます。multiplyTaxRate()は税込み価格を計算する関数(メソッド)であり、これが今回プライベートにしたい関数です。この関数は、 #consumption_tax.pyの中の、さらに privateMethodsクラスの中に定義しています。こうすれば、main.pyからmultiplyTaxRate()を直接呼び出すことはできません。つまり、multiplyTaxRate()はプライベートな関数といえると思います。main.py では、multiplyTaxRate()を直接呼び出す代わりに、calc()を呼び出すことで、間接的にmultiplyTaxRate()を利用しています。

ポイント:

関数をclassの中に定義すると、別ファイルに対するプライベートな関数のように利用できます。


classを利用して、プライベート関数もどきを作りました。

classの利用方法などについて理解が足りていないので、勉強が必要だと思いました。