.net column
.NET開発者のためのブログメディア

pythonエンジニア

PythonでのDTOクラスとは?基本的な使い方や辞書形式やタプル形式に変換する方法を紹介します!

2021年05月11日
SE
Pythonのdataclassアノテーションは何ができるのですか。
PM
dataclassを使用することで、データを格納するためのDTOクラスであることを明確にできます。また、クラス定義をシンプルに書けます。

PythonでのDTOクラスの使い方とは?


今回は、Pythonでのdataclassアノテーションを使ったDTOクラスの使い方を説明します。

DTO(Data Transfer Object)とは、オブジェクト指向プログラミングのデザインパターンの1つで、データを1つにまとめたオブジェクトです。

Python3.7から、dataclassアノテーションが使えるようなり、DTOクラスを作成できるようになりました。

dataclassを使用することで、データを格納するためのクラスであることを明確にできます。また、クラス定義をシンプルに書けるようになりました。

Pythonでのdataclassアノテーションを使ったDTOクラスの使い方に興味のある方はぜひご覧ください。

基本的な使い方

dataclass登場する前は、データを格納するクラスを作成するには以下のように記述します。

実行結果は以下のようになります。

dataclassを使うと、以下のように簡単にDTOクラスを作成できます。実際のソースコードを見てみましょう。

実行結果は以下のようになります。

dataclassのクラスオブジェクトをprintすると、オブジェクトの中身を表示できます。

関数

dataclassで関数を定義する方法を紹介します。実際のソースコードを見てみましょう。

実行結果は以下のようになります。通常のクラスと同じように、関数を定義できます。

比較対象から除外する

dataclassはオブジェクトの比較ができます。特定のフィールドを比較対象から除外する方法を紹介します。実際のソースコードを見てみましょう。

実行結果は以下のようになります。「compare=False」を付与することで、特定のフィールドを比較対象から除外できます。

イミュータブル

オブジェクトをイミュータブル(変更不可)にする方法を紹介します。「frozen=True」を付与します。実際のソースコードを見てみましょう。

実行結果は以下のようになります。変更しようとすると、FrozenInstanceErrorが発生します。

辞書形式やタプル形式に変換

オブジェクトを辞書形式やタプル形式に変換する方法を紹介します。実際のソースコードを見てみましょう。

実行結果は以下のようになります。

辞書形式からオブジェクトを生成することもできます。実際のソースコードを見てみましょう。

実行結果は以下のようになります。

SE
dataclassを使用するとデータを格納するためのDTOクラスであることを明確にできたり、クラス定義をシンプルに書けたりするのはいいですね。
PM
そうですね。ご紹介したソースコードを参考にご自身でもソースコードを書いてみてください。

まとめ

いかがでしたでしょうか。Python3.7から、dataclassアノテーションが使えるようになり、DTOクラスを作成できるようになりました。

dataclassを使用することで、データを格納するためのクラスであることを明確にできます。また、クラス定義をシンプルに書けるようになりました。

ぜひご自身でソースコードを書いて、理解を深めてください。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags