Pythonでユーザーが入力した文字列に対して特定の文字列が含まれているかをチェックするクラスを定義する

スポンサーリンク

Pythonでユーザーが入力した文字列に対して特定の文字列が含まれているかをチェックするクラスを定義し、実装してみます。

■今回の環境(Python)

今回のPythonは、バージョン3.9.16を用いる。(なお、Google Colaboratory(Google Colab)を使用。)

■ユーザーが入力した文字列に対して特定の文字列が含まれているかをチェックするクラスの定義

では、早速Pythonでユーザーが入力した文字列に対して特定の文字列が含まれているかをチェックするクラスを定義するために、コードを書いていきます。

■コード

class StringChecker:
    def __init__(self, check_string):
        self.check_string = check_string

    def contains_string(self, target_string):
        return self.check_string in target_string

checker = StringChecker("Python")
result = checker.contains_string("I love Python programming!")
print(result)

今回はStringCheckerというオブジェクトを作成するためのテンプレート(設計図)であるクラスを定義します。このクラスは、定義後、クラス内にdef文を用いて’__init__’と記述し、コンストラクタを使います。括弧内には、メソッドで渡される最初の引数,パラメータは、インスタンス(作成されたオブジェクト)自体でなければならないため、「self(自己)」と記述し、最初の引数として渡します。次に第2の引数,パラメータとしてcheck_stringを設定します。なお、最初の「self(自己)」という引数,パラメータを介して、「check_string」というクラスのインスタンス変数が初期化されます。この時にself(自己)に対してドット演算子( . )を用いて「check_string」を指定します。

次にdef文を用いてcontains_stringというメソッドを定義します。弧内には、メソッドで渡される最初の引数,パラメータは、インスタンス(作成されたオブジェクト)自体でなければならないため、「self(自己)」と記述し、最初の引数として渡します。次に第2の引数,パラメータとしてtarget_stringを設定します。このメソッドが呼び出された時の処理として、inを用いて、check_string内の文字列がtarget_string内の文字列に含まれているかどうかを判定します。含まれている場合は真(True)を返し、含まれていない場合は偽(False)を返します。そして、この結果をreturnとして返します。

次にcheckerという変数を定義し、その中でStringChecker()を呼び出します。インスタンス化を行います。インスタンス化によりオブジェクトが作成されたことで、クラス内にアクセスできるようになりました。この時に括弧内に第1の引数,パラメータとしてcheck_string(文字列)を渡します。

その後、resultという変数を定義し、その中で作成したオブジェクトであるcheckerに対して(.)ドット演算子を用いてcontains_string()を呼び出します。この時に括弧内に第1の引数,パラメータとしてtarget_string(文字列)を渡します。これで文字列に対して特定の文字列が含まれているかをチェックし、チェックされた結果が、result変数内に格納されます。

格納後、print()でresult変数内の情報を出力します。

■実行・検証

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

実行してみると、ユーザーが入力した文字列に対して特定の文字列が含まれているかをチェックするクラスを定義し、クラス内のメソッドを呼び出し、特定の文字列が含まれているかをチェックし、チェックされた結果を出力させることができました。

コメント

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