在这段代码中,他们正在检查self
与self.parent.leftChild的相等性。为什么他们这样做
def isLeftChild(self):
return self.parent and self.parent.leftChild == self
该网站是: - class TreeNode
:http://interactivepython.org/runestone/static/pythonds/Trees/SearchTreeImplementation.html
答案 0 :(得分:4)
在这段代码中,他们正在检查self与其他两个参数的相等性。
什么?哪里?不,a and b == c
不会以任何方式将a
和c
联系在一起。
self.parent and self.parent.leftChild == self
检查是否
self.parent
有一个有意义的值(不是None
),如果是,self.parent.leftChild
等于给定的self
。换句话说,它的名字就是:它检查“我们”是否与我们父母的左孩子相同。当然,这只有在我们有父母的情况下才有效。如果我们没有,我们就不是它的左孩子了。
注意:我刚才所说的“不是None
”只是事实的一半。确切地说,它检查是否存在“真值”,i。即在条件表达式的上下文中计算为true的值。正如在None
之类的缺席节点的情况下,通常使用parent
,我所写的内容已经足够清楚了。