python 面向過程和面向對象


世間萬物皆 “對象”,對象 “集合” 即為 “類”

        ——有相同屬性的對象的集合聚集成一類,

        將類賦值給一個變量,就是一個對象,即為將類實例化

   類:變量→屬性 和 函數→方法

 

面向過程 以解決問題的步驟來划分

面向對象 以功能來划分

面向過程就是自頂向下的編程;

面向對象就是高度實物抽象化

面向過程和面向對象並沒有優劣之分,只有適合與不適合。

 

面向過程
    優點:性能比面向對象高,因為類調用時需要實例化,開銷比較大,比較消耗資源;比如單片機、嵌入式開發、 Linux/Unix等一般采用面向過程開發,性能是最重要的因素。
    缺點:沒有面向對象易維護、易復用、易擴展
面向對象
    優點:易維護、易復用、易擴展,由於面向對象有封裝、繼承、多態性的特性,可以設計出低耦合的系統,使系統 更加靈活、更加易於維護
    缺點:性能比面向過程低

面向過程 和 面向對象 編程

  1. 面向過程 編程:函數式編程,C程序,shell等
  2. 面向對象 編程:功能式編程,C++ ,Java,Python等

 

面向對象的基本結構:

面向對象的主要思想是:    封裝    繼承    多態

類的定義:

類把需要的變量和函數組合成一起,這樣包含稱為"封裝"
class A(object):

類的結構:
class 類名:
成員變量 - 屬性
成員函數 - 方法

 

Class 示例:

class People(object):     # 定義類(class),object可以有,也可以沒有
    color = 'yellow'      #定義了一個靜態屬性,成員變量
       
    def think(self):    #定義了一個動態方法,這個方法里一定要有self,還可以帶多個屬性,成員函數
        self.color = "black"     #如果需要調用類里的屬性,就要用到self.color來調用該靜態屬性
        print("I am a %s" % self.color)    #調用動態方法時的輸出
        print("i am a thinker") 

ren = People()      #將類賦值給'ren'這個變量,就是一個對象,即為將類實例化

print(ren)            # 單純打印這個'ren'變量是一個對象(object),所以將類實例化后的便是對象(object)

print(ren.color)      #輸出,'ren'對象的靜態屬性,

ren.think()         #使用這個類里面的.think()方法



# 輸出結果:

<__main__.People object at 0x7f646d144690>    #打印這個方法的信息

yellow           #靜態屬性的輸出結果

I am a black       #這里輸出的是 ren.think()         
i am a thinker 
people.py


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM