slots魔法:

            
               當我們需要限定自定義類型的對象只能綁定某些屬性,可以通過在類中定義__slots__變量來進行限定。
 __slots__的限定只對當前類的對象生效,對子類并不起任何作用。
            
          

靜態方法和類方法:

            
              靜態方法可解決對象未創建出來的問題。
案例:例如我們定義一個正方形類,通過四個邊長來構造正方形,并提供計算面積的方法。
            
          

python----03(面向對象進階02)_第1張圖片 python----03(面向對象進階02)_第2張圖片

定義類方法:

            
              類方法的第一個參數約定名為cls,它代表的是當前類相關的信息的對象(類本身也是一個
對象,有的地方也稱之為類的元數據對象),通過這個參數我們可以獲取和類相關的信息并且可以創建
出類的對象。
案例:數字時鐘
            
          

python----03(面向對象進階02)_第3張圖片 python----03(面向對象進階02)_第4張圖片 python----03(面向對象進階02)_第5張圖片

繼承和多態:

            
              繼承:追根溯源,可以使得子類具有父類的屬性和方法或者重新定義、追加屬性和方法等。
多態:不同的子類對象會表現出不同的行為。

 例(1)、通過繼承計算兩數之和。   
            
          

python----03(面向對象進階02)_第6張圖片

            
              例(2)、帶參繼承。
            
          

python----03(面向對象進階02)_第7張圖片

裝飾器:

            
              使用裝飾器的時候,需要注意:
1. 裝飾器名,函數名需要一致.
2. property需要先聲明,再寫setter,順序不能倒過來
3. 如果你希望一點變量只是被訪問不能被修改,那么可以使用訪問器@property
4. 如果要修改訪問器中的變量,可以搭建一個修改器,或者刪除訪問器.
例:將前面的兩數求和,函數本身第三個數乘上這個和。
            
          

python----03(面向對象進階02)_第8張圖片

不定長參數

            
               *args :位置傳參。
            
          

python----03(面向對象進階02)_第9張圖片

            
                ** kwargs:帶參數名的傳參。
            
          

python----03(面向對象進階02)_第10張圖片

            
               不定長參數:
            
          

python----03(面向對象進階02)_第11張圖片

案例:裝飾器帶參數

python----03(面向對象進階02)_第12張圖片

生成器:

            
              優點:節約內存空間。
缺點:計算速度慢,因為要生成。
            
          

python----03(面向對象進階02)

列表生成式:

            
              優點:計算速度快,因為一次性已經全部加載到內存中了,適合數據不是太大的情況10000-2000-
缺點:占用內存。
            
          

python----03(面向對象進階02)