物件導向的程式設計的核心是物件(上帝式思維),要理解物件為何物,必須把自己當成上帝,上帝眼裡世間存在的萬物皆為物件,不存在的也可以創造出來。物件是特徵和技能的結合,其中特徵和技能分別對應物件的資料屬性和方法屬性。
優點是:解決了程式的擴充套件性。對某乙個物件單獨修改,會立刻反映到整個體系中,如對遊戲中乙個人物引數的特徵和技能修改都很容易。
缺點:可控性差,無法向面向過程的程式設計流水線式的可以很精準的**問題的處理流程與結果,物件導向的程式一旦開始就由物件之間的互動解決問題,即便是上帝也無法**最終結果。
應用場景:需求經常變化的軟體,一般需求的變化都集中在使用者層,網際網路應用,企業內部軟體,遊戲等都是物件導向的程式設計大顯身手的好地方。
類(class):用來描述具有相同的屬性和方法的物件的集合。它定義了該集合中每個物件所共有的屬性和方法。物件是類的例項。
物件:通過類定義的資料結構例項。物件包括兩個資料成員(類變數和例項變數)和方法。
類的宣告定義
通過class 關鍵字進行定義
----------------------------------
class 資料型別名稱:
型別中的**
example:
# 建立乙個person型別
class person:
pass
class person:
# 定義屬性、特徵
# 固定寫法:在__init__方法中,定義型別的屬性
def __init__(self, name, age, gender):
self.name = name
self.age = age
self.gender = gender
注意1:class 關鍵字,用來宣告定義乙個型別,固定寫法# 定義方法、行為
def eat(self, food):
print("吃飯了")
注意2:型別中的所有函式,第乙個引數self表示當前物件,類似生活中的乙個名詞:我
注意3:型別中的函式,必須稱為方法;
函式 vs 方法 : 兩個東西
方法是一種特殊的函式,只能在型別中使用!
注意4:型別中方法,第乙個引數:指代的是當前物件~~~一般被宣告為self
表示當前物件,呼叫的時候不需要傳遞資料給self!
tom.eat("魚香肉絲")
Python之物件導向程式設計
類和物件 類是抽象的模板,比如我們抽象乙個學生類,很容易想到學生固有的一些屬性,比如名字,年齡等等,建立乙個學生類 class student object pass 複製 這裡的object是表明student類是從哪個類繼承來的,在python中object是所有類的父類 繼承的概念下文會提及 ...
python之物件導向程式設計
當使用 類名 實參 建立例項物件時,python直譯器的主要處理過程包括兩大步 首先會查詢該類物件是否實現了特殊方法 new 如果沒有實現,則去其父類中依次查詢,直到類物件object。class parent object def new cls,args,kwargs pass class ch...
Python之物件導向程式設計介紹
面向過程 procedure oriented 是一種以過程為中心的程式設計思想。這些都是以什麼正在發生為 目標進行程式設計,不同於物件導向的是誰在受影響。與物件導向明顯的不同就是封裝 繼承 類。例如 五子棋,面向過程的設計思路就是首先分析問題的步驟 1 開始遊戲,2 黑子先走,3 繪製畫面,4 判...