2014-11-21 23 views
2

在Python中,我們可以做到這一點,能不能幫我與Python __init__

class TT(object): 
    def __init__(self): 
     self.f='ff' 
x=TT() 
print x.f 

如果我的代碼更改爲:

class TT(object): 
    def__init__(uu): 
     uu.f='ff' 
x=TT() 
print x.f 

我會得到相同的結果,無論是'ff''uu'這裏只是'self'的別名?還是有其他的區別?我應該什麼時候使用這個?

謝謝。

回答

5

這個對象變量沒有名字,你可以使用任何名字來標識它。但是,爲了便於區分對象變量和其他傳遞的變量,爲了使其更易讀取其他正在檢查您的代碼的其他變量,將其命名爲「self」是一種常用慣例。

你可以在技術上使用任何你想要的名字,但它在編程世界被認爲是不好的做法。

2

這不僅僅是__init__,它都是Python的方法:self僅僅是一個約定。方法中的第一個變量將是對象本身,並且不管您如何命名它,selfuubig_honchothis;但如果你使用的只是self,讀取你的代碼的人可能會被困擾一秒或一千次。

這與許多其他OO語言形成對比,該語言對當前對象具有隱式變量,通常爲self(例如Ruby)或this(例如JavaScript)。