Python類變數和執行個體變數區別

來源:互聯網
上載者:User

標籤:結果   self   一個   理解   nbsp   color   div   怎樣   bsp   

深入理解python類的執行個體變數和類變數 Python變數的本質:被賦值
1 普通python變數(非類相關變數)很容易理解,在被賦值後即變數存在,可讀可寫
2 Python類的變數(類變數和執行個體物件變數)以某種方式在某地方被賦值,即存在,可被讀寫
2.1 Python類變數被賦值
     (1)類的設計裡,
             class裡def外,通過變數名能被賦值
             def裡通過類對象即類名字的點運算變數名可被賦值
      (2)程式裡
             通過類對象(類名字)的點運算類名字也可被賦值
2.2 Python執行個體物件變數被賦值
    (1)類的設計時
            def裡通過self點運算變數名能被賦值,不一定非在init裡,其他已被調用的方法函數裡也行
    (2)程式裡
            通過執行個體對象的點運算變數名可被賦值
例子:
class aa:    w = 10    def __init__(self):        self.x = 11        self.y = 12    def add(self):        return self.x + self.ya = aa()print (a.add())  //輸出23# 下邊兩條指令各起何作用?結果是輸出兩個 20 嗎?還是兩個13?還是?aa.w = 20a.w = 13print (aa.w, a.w)  //輸出20 13# 程式繼續增加如下,怎樣理解這t和q呢?他們是執行個體變數a.t = 14a.q = 15print (a.t, a.q)  //輸出14 15# 程式繼續增加如下,怎樣理解這m和n呢?他們是類變數aa.m = 30aa.n = 40print (aa.m, aa.n)  //輸入30 40# 好了再來個提升吧# 程式繼續增加,下列三個print語句都能正確執行嗎?為何?b = aa()print (b.x, b.y)  //正確輸出11 12
print (b.t, b.q) //出錯,因為不是一個執行個體了 

print (b.m, b.n) //正確輸出30 40

 

Python類變數和執行個體變數區別

聯繫我們

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