Pythonでクラスメソッドとスタティックメソッド、例外処理を含むプログラムの作成

スポンサーリンク

Pythonでクラスメソッドとスタティックメソッド、例外処理を含むプログラムを作成してみます。

■今回の環境(Python)

Google Colaboratory(Google Colab),2023年3月18日時点ではPython 3.9.16が用いられる。

■クラスメソッドとスタティックメソッド、例外処理を含むプログラムの作成

では、早速クラスメソッドとスタティックメソッド、例外処理を含むプログラムを作成するため、コードを書いていきます。

■コード

class MyClass:
  @staticmethod
  def divide(x, y):
    try:
      return x / y
    except ZeroDivisionError as e:
      print("Error:", e)
      return None

print(MyClass.divide(10, 2))
print(MyClass.divide(10, 0))

今回はMyClassというオブジェクトを作成するためのテンプレート(設計図)であるクラスを定義します。その後、スタティックメソッドを定義するためのデコレーターである”@staticmethod”を用います。今回はdef文を用いてdivideというメソッドを定義します。括弧内には第1の引数,パラメータとしてxを設定し、第2の引数,パラメータとしてyを設定します。このメソッドが呼び出された時に、実行される処理としては、try/exceptブロックを用いて例外処理(exception)を記述します。まずtryの方に例外が発生する可能性のある処理として、xで受け取った値とyで受け取った値を”/”(スラッシュ)を用いて除算(割り算)する処理を記述します。そして、exceptで例外の種類としてZeroDivisionError(数値を0で割り算するとエラーが発生する)を設定します。これをasを用いてeとします。次にexcept内に例外に対応する処理として、print()で文字列とe(ZeroDivisionError)を出力するように設定します。設定後、returnとしてNoneを返すようにします。これは関数が値を返さないことを明示的に示す。

最後に定義したクラスであるMyClassに対して”.”ドット演算子を用いて、インスタンス化せずにクラスから直接divide()メソッドを呼び出します。その時に括弧内に引数,パラメータのxとyに渡す値を記述します。これでメソッド内の処理が実行され、結果がprint()で出力されます。

■実行・検証

このコード(セル)を保存し、Google Colaboratory上で、セルを実行してみます。

実行してみると、割り切れる場合は”/”(スラッシュ)を用いた演算結果が出力されましたが、メソッドに渡した値が「0」の場合には、「Error: division by zero」、「None」と出力されることを確認しました。

コメント

タイトルとURLをコピーしました