\

Pythonのdataclassは、主にデータを格納するために使用されるシンプルなクラスを定義する方法を提供します。@dataclassデコレータを使用してデータクラスを定義すると、クラスにはいくつかのメソッドが自動的に生成されます。その中には__init__()メソッドも含まれます。

例えば、以下のようなコードを考えてみましょう。

from dataclasses import dataclass

@dataclass
class InventoryItem:
    """Class for keeping track of an item in inventory."""
    name: str
    unit_price: float
    quantity_on_hand: int = 0

    def total_cost(self) -> float:
        return self.unit_price * self.quantity_on_hand

このコードでは、InventoryItemクラスに__init__()メソッドが自動的に追加されます。このメソッドは以下のようになります。

def __init__(self, name: str, unit_price: float, quantity_on_hand: int = 0):
    self.name = name
    self.unit_price = unit_price
    self.quantity_on_hand = quantity_on_hand

このメソッドはクラスに自動的に追加され、InventoryItemの定義には直接指定されていません。

dataclassデコレータは、__init__()メソッドだけでなく、__repr__()メソッドも自動的に生成します。これにより、クラスのインスタンスをprint()repr()に渡すと、クラス名と各フィールドの名前とreprが含まれた文字列が生成されます。

また、dataclassデコレータは、__eq__()__ne__()メソッドも自動的に生成します。これにより、クラスのインスタンス同士を等号で比較することが可能になります。

以上がPythonのdataclass__init__()メソッドの基本的な使い方となります。この機能を活用することで、Pythonでのクラス定義がより簡単になり、コードの可読性も向上します。

投稿者 admin

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です