嘿,所以目前正在制作一个使用邻接列表格式将图形实现到python中的教程。我遇到了一个例子,在这个类图中'有一个缩进的包含函数。如下图所示。
def __contains__(self, n):
return n in self.vertDict
vertDict是通过类初始化的字典。我可以要求解释这个功能的用途吗?
def addEdge(self,h,t):
if h not in self.vertDict:
newV = self.addVert(h)
if t not in self.vertDict:
newV = self.addVert(t)
self.vertDict[h].addnewLink(self.vertDict[t])
两只鸟一石,我有点理解“添加边缘”。功能但是参数h和t是什么?是创造边缘吗?
欣赏它!我一直在认真对待这些实施:'(
答案 0 :(得分:3)
我可以要求解释这个功能的用途吗?
6
def __contains__(self, n):
return n in self.vertDict
定义了类的实例在__contains__
或in
运算符的右侧时的行为方式 - 例如not in
或{{1 }}。 [1]
考虑以下示例:
x in foo
两只鸟一石,我有点理解'addEdge'功能但是参数h和t是什么?是创造边缘吗?
x not in foo
和class Foo(object):
def __init__(self, bar):
self.bar = bar
def __contains__(self, x):
return self.bar == x
f = Foo(3)
print 2 in f # => False
print 3 in f # => True
似乎都是顶点。此方法似乎在h
和t
之间添加了边缘,因此它看起来像h
。
t
来源:
[1] What does __contains__ do, what can call __contains__ function