2014-01-14 75 views
-1
class trial(object): 
     def __init__(self): 
     sup = '' 
     sup = self 
     print sup 

trial_1 = trial() 

赋值操作self.var = var很有意义,但在左侧指定一个变量self - (a)这是什么意思?而且,(b)为什么任何程序都这样做?变量=自我意味着什么?

回答

3

sup仅仅是现在对self的另一个参考;这两个名称都是指相同的对象

至于为什么会这样做,可能有多种原因,但我们需要更多的上下文。

如果您稍后要重新绑定sup的名称,但需要self作为起点,则分配可能有意义。一个遍历中发展出来的,其中算法开始于self,然后,在一个循环中,迭代分配子节点,以相同的变量名:

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

除了我会选择一个更好的名字比sup

3

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

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

+1

@WLin为什么要在其他变量中指定它来做到这一点?你可以直接使用'self'。 – thefourtheye

+0

同意。我正在考虑一些无关的事情。我删除了我以前的评论。 – WLin