PYTHON MEBY

Pythonでデータクラスを使う(dataclasses.dataclass, Python 3.7以降)

この記事では、Python 3.7以降で導入された`dataclasses`モジュールを使用してデータクラスを作成する方法を説明します。データクラスを使うことで、クラスの記述を簡潔にし、コードの可読性を向上させることができます。

目次

データクラスの基本

最もシンプルなデータクラスは、`@dataclass`デコレータをクラス定義の前に付けるだけです。

from dataclasses import dataclass

@dataclass
class Person:
    name: str
    age: int

このコードは、`name`と`age`という2つのフィールドを持つ`Person`クラスを定義します。`dataclass`デコレータによって、`__init__`メソッド、`__repr__`メソッドなどが自動的に生成されます。

フィールドの型指定

フィールドの型を指定することで、コードの可読性と保守性を向上させることができます。型ヒントは、変数の型を明示的に指定するために使用します。

from dataclasses import dataclass

@dataclass
class Person:
    name: str
    age: int
    is_adult: bool = False

型ヒントを指定することで、IDEによるコード補完やエラーチェックが有効になります。

デフォルト値の設定

フィールドにデフォルト値を指定することで、インスタンス作成時にすべてのフィールドに値を指定する必要がなくなります。

from dataclasses import dataclass

@dataclass
class Person:
    name: str = "Unknown"
    age: int = 0

デフォルト値は、`=`を使って指定します。デフォルト値は、フィールドの型と一致する必要があります。

メソッドの追加

データクラスは通常のクラスと同様に、メソッドを追加することができます。

from dataclasses import dataclass

@dataclass
class Person:
    name: str
    age: int

    def is_adult(self) -> bool:
        return self.age >= 18

メソッドを追加することで、データクラスの機能を拡張することができます。

データクラスの利点

データクラスを使うことで、以下のような利点があります。 * クラスの記述が簡潔になる * コードの可読性が向上する * 型ヒントが利用できる * デフォルト値の設定が容易になる

  • データクラスは、主にデータ保持を目的としたクラスに適しています。 複雑なビジネスロジックを実装するクラスには、通常のクラスを使用する方が適切な場合があります。

サンプルコード

以下は、データクラスを使った簡単なサンプルコードです。

from dataclasses import dataclass

@dataclass
class Person:
    name: str
    age: int

person = Person(name="Alice", age=30)
print(person)
print(person.name)
print(person.age)
print(person.is_adult()) # メソッド呼び出し

実行結果: Person(name='Alice', age=30) Alice 30 True

関連記事