[Python]物件導向–屬性和方法命名使用

來源:互聯網
上載者:User
很多內容和java很類似,但是使用時還是有很多的細節區分

#coding=utf-8#oop/oop1.py '''1 所有的類中的方法的參數表中都需要一個self參數2 方法中要使用類的成員變數必須使用self關鍵字 3 成員變數命名時加上'__xx'的首碼說明為私人屬性,不能夠通過類對象直接存取 如 p.__money  其實也可以訪問 如:p._Person__money ,一般都是測試使用4 方法分類:  私人方法:不能被外部的類和方法調用,命名也是有'__'首碼  類方法:被classmethod() 處理過得方法,能被類調用也能被對象調用  2中方法定義  靜態方法: 通過staticmethod()方法處理,參數表中沒有self參數,相當於全域函數 2種方法定義  靜態方法和動態方法的區別: 靜態方法在未執行時已經載入到記憶體中,動態方法是調用時才載入到記憶體中,       所以靜態方法快,佔用記憶體多,動態方法慢,但是佔用記憶體少。'''class Person(object):    name='lzz'    __money=20     __age=30            def printsome(self):        print self.name        print self.__money         #內部方法調用私人方法        self.__selfSay()          #私人方法     def __selfSay(self):        print 'Hihi'        #擷取私人屬性的方法,類似javabean    def get(self,x):        return self.x  #這樣顯然是由問題的,x到底是什麼類型呢,加判斷也沒怎麼簡潔。。         #類方法的實現    def runing(self):        print 'running'    runing = classmethod(runing)                #靜態方法的實現    def jumping():    #嚴格規定沒有self函數         print 'jumping'    jumping = staticmethod(jumping)        #使用裝飾器實作類別方法和靜態方法,類似java中的註解    @classmethod    def hihi(self):        pass     @staticmethod    def haha():        pass if __name__=='__main__':  #讓一個類可以變得可執行     p=Person()   # p.printsome()   # p.__money   # print p.__dict__   # print p._Person__money   #p.__selfSay() #IndentationError: unindent does not match any outer indentation level   # p.get('__age')    #Person.runing()    #Person.jumping()
筆記代碼
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.