python中的self理解__python

來源:互聯網
上載者:User

(原文是 Python's Magical Self ,來自 http://concentricsky.com )

Python的self參數有時真讓人抓狂,比如,你必須在每一個類的方法裡顯示定義self,然後,它會霸佔不需要它們的地方。            

[python]  view plain  copy     class Foo(object):       x = 9       def __init__(self,x):           self.x = x           def bar(self,y):           return self.x + y  

            如果你有C++,Java或其他語言的編程背景,你會覺得 __init__ 和 bar 方法裡的self 看起來很多餘,Python不是經常吹噓自己的簡答和優雅嗎,self到底有什麼用。

範圍出現了

           在python裡,範圍是非常簡單的。Python裡的一切都是對象,幾乎任何東西都是在對象水平的範圍裡。寫一個模組試試。

[python]  view plain  copy     # test.py   def say_hi():       print 'Hi!'  
          你剛剛建立了一個新的帶有say_hi屬性的模組對象。

          定義一個類。

[python]  view plain  copy     class Foo(object):       x = 9       def __init__(self,x):           self.x = x           def bar(self,y):           return self.x + y  

         你剛剛寫了一個帶有一些屬性的類對象,那些屬性是 x,__init__ ,還有 bar。

         執行個體化Foo。

[python]  view plain  copy     foo = Foo(5)  

         你建立了一個帶有屬性x,__init__ ,和bar的Foo 執行個體,請記住,foo的三個屬性跟Foo的不一樣,待會,你就會知道為什麼。

上下文就是一切

         把Foo拆開:

[python]  view plain  copy     def bar(self,y):       return self.x + y  

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.