在查看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
.