我一直在努力奮鬥三天,圍繞__init__
和「自我」,從Python Python入門練習42開始,繼續閱讀部分Python文檔,Alan Gauld's chapter on Object-Oriented Programming,Stack threads like this one on "self",and this one和坦率地說,我準備用磚頭打我自己,直到我昏過去。這就是說,我已經注意到一個非常常見的約定,在最初的__init__
定義中,隨後是(self,foo),然後立即在該定義中聲明self.foo = foo。Python:必須__init __(self,foo)總是跟着self.foo = foo?
從LPTHW,ex42:
class Game(object):
def __init__(self, start):
self.quips = ["a list", "of phrases", "here"]
self.start = start
從阿蘭·高爾德:
def __init__(self,val): self.val = val
我在那可怕的空間,讓我可以看到,這裏有一個大的事情我沒有變,而且無論我讀了多少關於它並試圖找出它,它都是不透明的。也許如果有人能夠向我解釋這一點點的一致性,那麼燈就會亮起來。這是因爲我們需要說變量的「foo」將始終等於(foo)參數,它本身包含在自動分配給它所連接的def的「self」參數中?
很好的解釋 – Wei 2012-03-16 00:57:16
重要的是,你可以指定參數給任何屬性,比如'self.abc'。以同樣的方式命名屬性只是你如何構造代碼的問題。 – 2012-03-16 00:59:27
@FelixKling:我做了一個小小的修改,使其更加清晰,謝謝。 – Mehrdad 2012-03-16 01:00:47