我碰巧遇到了使用以下代码的代码:
class example:
def __init__(self):
.....
def ex_m1(self, exinst):
.....
exinst.ex_m2(exinst)
def ex_m2(self, exinst):
self.inst = exinst
.....
self.inst.ex_m3()
def ex_m3(self):
.....
test = example()
test.ex_m1(test)
代码作者打算在这里实现什么?上面的与下面的不是吗?
class example:
def __init__(self):
.....
def ex_m1(self):
.....
self.ex_m2()
def ex_m2(self):
.....
self.ex_m3()
def ex_m3(self):
.....
test = example()
test.ex_m1()
如果它们不相同,它们会有什么不同?
答案 0 :(得分:1)
原始代码对self.exinst中存储的类的第二个实例(而不是当前实例本身)进行某些工作,而您的修订版仅适用于当前实例。
这是您可以在链表中看到的一种模式。