2014-01-14 77 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