首先物件導向是一種程式設計思想,它是通用的
絕對不是說在python只有用class程式設計才是物件導向程式設計,class只是python提供給我們用來物件導向程式設計的一種語法結構
下面用純函式來進行物件導向程式設計:
def
dog(name,gender,
type):
defchishi
(dog)
:print
("%s吃了shi"
%dog[
"name"])
defjiao
(dog)
:print
("%s叫了汪汪汪"
%dog[
"name"])
definte()
: dogg=
return dogg
return inte(
)d1=dog(
"花花"
,"male"
,"泰迪"
)d1[
"jiao"
](d1)
下面用class語法再實現一遍:
class
dog:
def__init__
(self, name, gender,
type):
self.name=name
self.gender= gender
self.
type
=type
defchishi
(self)
:print
("%s吃了shi"
% self.name)
defjiao
(self)
:print
("%s叫了汪汪汪"
% self.name)
d1 = dog(
"花花"
,"male"
,"泰迪"
)d1.jiao(
)
比較一下,可以看出來:單純的乙個小的物件導向,class語法程式設計比用純函式更簡潔,容易理解。此外,class還有很多其他強大簡便,這也是python提供給我們的便利
但是還要再強調:class和物件導向不是唯一對應關係,應該說是包含關係。
物件導向有三個用特別裝飾器實現的屬性及方法:
@property -----------------靜態屬性
@classmethod-------------類方法
@staticmethod-------------靜態方法
詳見用描述符自定製靜態屬性property,靜態方法staticmethod,類方法classmethod
三大特性後續整理
python物件導向基礎 python物件導向基礎
面向過程與物件導向 面向過程的程式設計的核心是過程 流水線式思維 過程即解決問題的步驟,面向過程的設計就好比精心設計好的一條流水線,考慮周全什麼時候處理什麼東西。優點 極大降低了寫程式的複雜度,只需要順著要執行的步驟,堆疊 即可。缺點 一套流水線或者流程就是解決乙個問題,牽一髮而動全身。應用場景 一...
Python之物件導向 物件導向基礎
一 面向過程 物件導向對比 1 面向過程 根據業務邏輯從上到下寫壘 2 函式式思想 將某功能 封裝到函式中,日後便無需重複編寫,僅呼叫函式即可 3 物件導向 對函式進行分類和封裝 1 2 3一步一步抽象,函式式是走向物件導向的中間步驟 函式式的應用場景 各個函式之間是獨立且無共用的資料 物件導向程式...
python物件導向基礎
類是例項的模版,例項是根據類建立的乙個具體物件,每個物件都有相同的方法,但是各自的資料不同。如果要讓內部屬性不被外部訪問,可以把屬性的名稱前加上兩個下劃線 在python中,例項的變數名如果以 開頭,就變成了乙個私有變數 private 只有內部可以訪問,外部不能訪問 當子類和父類都存在相同的run...