Day 90dataclassの基本
Pythonコード
1from dataclasses import dataclass2 3@dataclass4class Person:5 name: str6 age: int7 8person = Person("山田太郎", 30)9print(person)10 11person2 = Person("鈴木花子", 25)12print(person2)13 14persons = [person, person2]15print(persons)16 17sorted_persons = sorted(persons, key=lambda x: x.age)18print(sorted_persons)
解説
- 行1〜2: dataclassという機能を利用するために、dataclassesモジュールからdataclassをインポートします。dataclassは、クラスを簡単に定義できる機能です。dataclassesモジュールは、Pythonの標準ライブラリの一部です。
- 行3〜6: Personクラスを定義します。@dataclassというデコレータを使用して、dataclassとして定義します。nameとageという2つの属性を定義します。nameは文字列、ageは整数です。
- 行8〜9: Personクラスのインスタンスを生成し、nameとageを設定します。print関数を使用して、Personクラスのインスタンスの情報を出力します。print関数は、指定された値を画面に表示する関数です。
- 行11〜12: もう1つのPersonクラスのインスタンスを生成し、nameとageを設定します。print関数を使用して、Personクラスのインスタンスの情報を出力します。
- 行14: Personクラスのインスタンスをリストに追加します。
- 行17〜18: sorted関数を使用して、リスト内のPersonクラスのインスタンスをageでソートします。sorted関数は、リスト内の要素をソートした新しいリストを返します。key引数にlambda関数を指定して、ソートの基準を指定します。lambda関数は、簡単な関数を定義するための方法です。
- 行17: 補足: sorted() は並べ替えた新しいリストを返す関数です。
- 行9〜18: 補足: print() は画面に文字や値を表示する関数です。
次に試してみよう
- dataclassで定義したクラスに、メソッドを追加してみましょう。
- dataclassで定義したクラスを、辞書に変換してみましょう。
- dataclassで定義したクラスを、JSONに変換してみましょう。