变量=自我是什么意思?

时间:2014-01-14 15:52:17

标签: python python-2.7

 class trial(object):
      def __init__(self):
        sup = ''
        sup = self
        print sup

 trial_1 = trial()

赋值操作self.var = var很有意义,但在左侧self分配变量 - (a)这意味着什么?而且,(b)为什么任何程序都会这样做?

2 个答案:

答案 0 :(得分:3)

与任何其他任务一样,它只是创建另一个指向self对象的名称。

至于为什么,这是一个很好的问题:它实际上并没有做任何有用的事情。

答案 1 :(得分:3)

sup现在只是对self的另一个引用;两个名称都指的是同一个对象

至于为什么会这样做,可能有很多原因,但我们需要更多的背景。

如果您稍后要重新绑定sup名称但需要self作为起点,则分配可能有意义。图形遍历让人想起,算法从self开始,然后在循环中迭代地将子节点分配给相同的变量名称:

sup = self
while sup.has_children():
    sup = sup.get_first_child()

除非我选择比sup更好的名字。