Python
 Computer >> コンピューター >  >> プログラミング >> Python

【Python入門】ユーザーから文字列を受け取るメソッドと出力するメソッドを持つクラスの作成方法

ユーザーから文字列を受け取るメソッドと、その文字列を出力する別のメソッドを持つクラスを作成したい場合には、オブジェクト指向のアプローチを活用します。具体的には、まずクラスを定義し、その中に属性(インスタンス変数)を設定します。続いて、特定の操作を実行するための関数(メソッド)をクラス内に定義します。最後にクラスのインスタンスを生成し、そのメソッドを呼び出して処理を実行します。

以下に、実際の実装例を示します。

サンプルコード

class print_it():
    def __init__(self):
        self.string = ""
    def get_data(self):
        self.string = input("文字列を入力してください : ")
    def put_data(self):
        print("文字列は次のとおりです:")
        print(self.string)

print("クラスのオブジェクトを作成しています")
my_instance = print_it()
print("'get_data' メソッドを呼び出しています")
my_instance.get_data()
print("'put_data' メソッドを呼び出しています")
my_instance.put_data()

実行結果

クラスのオブジェクトを作成しています
'get_data' メソッドを呼び出しています
文字列を入力してください : janewill
'put_data' メソッドを呼び出しています
文字列は次のとおりです:
janewill

コードの解説

  • print_it という名前のクラスを定義し、その中に get_dataput_data という2つのメソッドを持たせています。
  • get_data メソッドは、input() 関数を使ってユーザーからキーボード入力で文字列を受け取り、インスタンス変数 string に格納します。
  • put_data メソッドは、受け取った文字列をコンソール画面に出力して表示します。
  • クラス名に括弧を付けて呼び出すことで、このクラスのインスタンス(オブジェクト) my_instance を生成しています。
  • 生成したインスタンスに対して各メソッドを順番に呼び出すことで、文字列の入力と表示という一連の操作を実現しています。
  • 処理の進行状況や結果を示すメッセージが、適宜コンソールに表示されます。

押さえておきたいポイント

  • __init__ メソッドは、クラスのインスタンスが生成されたときに自動的に実行される特別なメソッド(コンストラクタ)です。ここでは、string 属性を空文字列で初期化しています。
  • self は、クラス内の各メソッドの第一引数として必ず指定するもので、そのメソッドが属するインスタンス自身を指します。これにより、インスタンスごとの属性や他のメソッドにアクセスできます。
  • このように、データ(属性)と操作(メソッド)をひとつのクラスにまとめることで、コードの再利用性や保守性が向上します。
  1. Pythonでリストから「数値とその3乗」を含むタプルのリストを作成する方法

    この記事では、指定された問題文に対する解決策とそのアプローチについて詳しく解説します。問題文リストが入力として与えられたとき、各要素の数値とその3乗(キューブ)をペアにしたタプルのリストを作成する必要があります。解決アプローチこの問題は、Pythonのリスト内包表記を使うことで、簡潔かつ効率的に解くことができます。以下に、インライン実装による具体的な解法を示します。コード例list1 = [0,1,2,4,6] res = [(val, pow(val, 3)) for val in list1] # main print(res)出力結果[(0, 0), (1, 1), (2, 8), (4

  2. Pythonで別の辞書の値から新しい辞書を作成・マージする3つの方法

    Pythonである辞書の値をもとに新しい辞書を作成したい場合は、既存の辞書同士をマージ(統合)するのが基本的なアプローチです。ここでは、Pythonのバージョン別に代表的な3つの方法を紹介します。方法1:**演算子でアンパックして結合(Python 3.5以降)Python 3.5以降では、**演算子を使って辞書を展開(アンパック)し、複数の辞書を簡潔に1つにまとめることができます。構文例a = {foo: 125} b = {bar: hello} c = {**a, **b} print(c)出力結果{foo: 125, bar: hello}この記法は古いバージョンのPythonではサポ