【 Python Data Structures and Algorithms 】Linked List 実装 Programming Interview 解答例

Tags: algorithm , challenge , python

Published 2020年8月1日12:44 by T.Tsuyoshi

Linked List 実装問題の解答例です。問題は こちら から。是非挑戦してみてください。 ただ1つの正解、は存在しません。 実装方法の1つとして参考にしてください。 class Node: """ Linked List を構成する要素 ( ノード )。 """ def __init__(self, name: str,…

【 Python Data Structures and Algorithms 】Python とデータ構造 ( data structure ) - linked list を実装してみよう! Linked List 実装 Python Programming Interview 模擬問題

Tags: algorithm , challenge , programming , python

Published 2020年8月1日12:33 by T.Tsuyoshi

プログラム開発をする上で、データ構造 ( data structure ) とアルゴリズム ( algorithm ) の知識は必須です。 そこで今回は Linked List を実装してみます。 Linked List は要素 ( ノード: node ) のただの羅列に過ぎません。 しかし、それぞれのノードは、自分の次に並んでいるノードの情報を持っています。 …

【 Effective Python, 2nd Edition 】__set_name__ デスクリプタ専用特殊関数 ( special method for descriptor ) を利用してデスクリプタインスタンスを割り当てたクラス変数名を取得し、コードの冗長性を排除しよう!

Tags: descriptor , metaclass , __set_name__ , python , effective

Published 2020年7月28日21:30 by T.Tsuyoshi

メタクラス ( metaclass ) を利用することで、クラスの「型」が完全に作られる前にクラス属性を操作することができます。 さらに、デスクリプタ ( descriptor ) を利用すると、デスクリプタインスタンスを含むクラスとその属性のよりきめ細かい操作が可能になるんです。 例えば、顧客データベースの各フィールドに相当するクラスを作成するとします。 今回は、…

【Python 雑談・雑学】デスクリプタ ( descriptor ) をしっかりと理解しよう!

Tags: miscellaneous , descriptor , __set__ , __get__ , python

Published 2020年7月27日21:34 by T.Tsuyoshi

次のプログラムを実行した際に4つの print 文で出力されるそれぞれの内容が分かりますか? class Field: def __init__(self, name): self.name = name self.internal_name = '_' + self.name def __get__(self, instance, …

【 Effective Python, 2nd Edition 】サブクラス定義に付随させて必ず行いたい操作がある場合は、メタクラス ( metaclass )、または、__init_subclass__ 特殊関数を利用してド忘れを防止しよう!

Tags: metaclass , __init_subclass__ , python , effective

Published 2020年7月25日18:42 by T.Tsuyoshi

メタクラスの用途として、ある属性の有無や属性値の値によってクラスの機能を変化させる、サブクラス定義に必要な属性が含まれているか、属性値は有効かを検証する、等がありますが、型を記録しておき将来的に復元可能にする、という操作にも最適です。 例えば、Python オブジェクトの「型紙」をパラメータの値も含めて JSON 形式にシリアル化しておき、将来的な復元に備えて保存したいとします。 …