タグ

pythonとdataclassに関するkoma_gのブックマーク (4)

  • quicktypeとdaciteでJSONとPythonのdataclassの変換を手軽に書く - Qiita

    背景 Python で外部サービスとAPI連携する際、JSON をパースするシチュエーションは多々あるかと思います。 パースって退屈ですし、ハッカソンのような特にスピード求められる状況ではあまり時間をかけたくないですよね。 今回は JSON を手軽に Python の dataclass に変換する方法を紹介します。 なお、この記事で紹介するコードは GitHub で公開しています。 https://github.com/gaiax/quicktype-dacite-demo 利用するライブラリ タイトルの通り quicktype と dacite というライブラリを主に利用します。 quicktype JSON などのサンプルデータの型を推測し、対応する言語で出力するライブラリ。 https://github.com/quicktype/quicktype npm パッケージとして公開さ

    quicktypeとdaciteでJSONとPythonのdataclassの変換を手軽に書く - Qiita
  • [詳解] Pythonのdataclasses

    dataclassesとは pythonのdataclassesモジュールは、データを格納するためのクラスを定義し、データ格納クラスのための様々な機能を含んだモジュールです。 データ格納のための、と言うとふんわりした印象になりますが、クラス変数を初期化するための__init__()関数を自動生成してくれるため、クラスの定義がシンプルになります。またデータ格納を目的とするクラスの場合__init__()に大量の引数を記載する必要がありますが、自動生成されることによりその必要も無くなります。 データ格納といった目的以外にも様々な用途に用いることが考えられると思います。 dataclassesPython3.7から追加になりました。記事はPython3.9のドキュメント、ソースコードを参照して執筆しています。 基的な使い方 dataclassesモジュールを用いたデータ格納クラスを作成する

    [詳解] Pythonのdataclasses
  • Python3.7以上のデータ格納はdataclassを活用しよう - Qiita

    はじめに Pythonでデータを格納する際に辞書や普通のクラスを使っていませんか?Python3.7からはデータ格納に便利なdataclassデコレータが用意されています。 この記事では公式ドキュメントやPEP557の説明ではいまいち掴めない、どういった時に便利で、なぜ使うべきなのかという点に触れつつ、使い方を説明していきます。 なお、以前のバージョンではPython3.6に限りpip install dataclassesによって使えるようになります。執筆時点ではGoogle Colaboratoryの環境がPython3.6.9ですが、デフォルトでdataclassesがインストールされています。 想定読者 dataclassの存在を知ったが何なのかよく分からない人 可読性高くデータを扱いたい人 「前はこんな機能なかったし、自分は別に使わなくて良いよ・・・」と思っている人 よく見かける

    Python3.7以上のデータ格納はdataclassを活用しよう - Qiita
    koma_g
    koma_g 2020/12/18
    dataclassのメリット。辞書/通常クラスを使うこととの違い。
  • Python3.7で導入されたdataclass入門 - MyEnigma

    Python実践入門 ── 言語の力を引き出し、開発効率を高める (WEB+DB PRESS plusシリーズ) 目次 目次 はじめに 通常のclassとdataclassの比較 dataclassの良いところ データを格納する箱であることを明確にできる。 クラス定義を短くかける 型情報を書くことでデータ構造が見やすくなる。 Printしたときに、そのままオブジェクトの中身を表示できる。 asdict関数でdictに変換できる。(Dictから簡単にJSONにも変換できる) Dict(JSON)からdataclassを作ることもできる Frozen引数を使うことで、簡単にイミュータブルにもできる。 データが作られたときに、自動後処理機能を追加することができる。 dataclassの残念なところ コレクションの初期化 参考資料 MyEnigma Supporters はじめに C++ユーザやJ

    Python3.7で導入されたdataclass入門 - MyEnigma
  • 1