class trial(object):
def __init__(self):
sup = ''
sup = self
print sup
trial_1 = trial()
赋值操作self.var = var
很有意义,但在左侧self
分配变量 - (a)这意味着什么?而且,(b)为什么任何程序都会这样做?
答案 0 :(得分:3)
与任何其他任务一样,它只是创建另一个指向self
对象的名称。
至于为什么,这是一个很好的问题:它实际上并没有做任何有用的事情。
答案 1 :(得分:3)
sup
现在只是对self
的另一个引用;两个名称都指的是同一个对象。
至于为什么会这样做,可能有很多原因,但我们需要更多的背景。
如果您稍后要重新绑定sup
名称但需要self
作为起点,则分配可能有意义。图形遍历让人想起,算法从self
开始,然后在循环中迭代地将子节点分配给相同的变量名称:
sup = self
while sup.has_children():
sup = sup.get_first_child()
除非我选择比sup
更好的名字。