Think Complexityでいくつかのコードを見ているときに、Graph
クラスがそれ自体に値を割り当てていることに気付きました。そのクラスからいくつかの重要な行をコピーし、ObjectChild
この動作で失敗するクラスの例を書きました。
class Graph(dict):
def __init__(self, vs=[], es=[]):
for v in vs:
self.add_vertex(v)
for e in es:
self.add_edge(e)
def add_edge(self, e):
v, w = e
self[v][w] = e
self[w][v] = e
def add_vertex(self, v):
self[v] = {}
class ObjectChild(object):
def __init__(self, name):
self['name'] = name
さまざまな組み込み型がすべてこれを使用する独自の方法を持っていると確信していますが、これを自分のクラスに組み込む必要があるかどうかはわかりません。それは可能ですか?これは私が気にするべきではないことであり、代わりに単純な構成に頼っていself.l = [1, 2, 3]
ますか? 組み込み型以外では避けるべきですか?
「組み込みのpythonコレクションから継承することはほとんどない」と言われたため、質問します。私が自分自身を制限することをためらっているアドバイス。
明確にするために、それは「機能しない」ことを知っておりObjectChild
、簡単に「機能」させることができますが、これらの組み込み型の内部の仕組みに興味があり、インターフェイスが の子とは異なりますobject
。