では、Pythonic とは何かについての別の質問です。この場合のアプリケーション ドメインは、ネットワーク アルゴリズム (ノード、エッジ、ダイクストラ、そのようなものなど) であり、以前は厳密に型指定された言語でコーディングしただけで、すべてが何であるかを非常に確信できるものです。
一方、Python では、クラスがNet
あります。このクラスの 1 つのインスタンスがネットワークを表します。Edge
ネットワーク内のエッジごとにインスタンス化されるクラスがあります。各Edge
インスタンスには、とりわけ固有の がありid
ます。
Edge
関連するインスタンスを参照してエッジを削除したい場合があります。を使用して Edge を削除したい場合もありid
ます。正直なところ、どの変数がEdges
で、どれが であるかを見失い始めていますids
。この仕事にはC++を好んだと思います:-P
そこで、2 つの解決策を提案します。
システムのハンガリー語表記の使用を開始します。変数に適切な名前を付けて、それらが実際の Edge オブジェクトなのか、必要な Edge の ID なのかがわかるようにします。強力な型付けを実装する - make
remove_edge
(これは on のメソッドですNet
) ではないものを明示的に拒否しEdge
ます。remove_edge_id
関連するものを検索してEdge
からid
呼び出すラッパー関数を作成しますremove_edge
。同様に、この関数は ではないものをすべて拒否しid
ます。ダックタイピングを使用します。
remove_edge
引数が anid
または anであるかどうかを確認Edge
し、正しいことを行うだけです。
一体いつ計算するの?