小糖果python之物件導向(中)

2021-10-10 20:04:02 字數 1559 閱讀 8040

當呼叫乙個物件的屬性時,解析器會先在當前物件中尋找是否含有該屬性,如果有則直接返回當前物件的屬性值;如果沒有,則去當前類物件當中尋找。如果類物件中沒有,則報錯。

即:例項化物件先找自己屬性,自己不存在再找類物件,類物件沒有則報錯。

果屬性和方法是所有勢力所共享的,則應該儲存到類物件中;如果屬性和方法是某個例項所獨有的,則應該儲存到相應的例項物件中。一般情況下,屬性儲存到例項物件當中,方法則儲存到類物件當中。

在類中,方法每次呼叫時解析器會自動傳遞乙個實參

如果是例項化物件p1呼叫,則第乙個引數就是p1物件

如果是例項化物件p2呼叫,則第乙個引數就是p2物件

一般我們都會將這個物件命名為self

class

person

: name=

'葫蘆娃'

defspeak()

:print

('你好,我是%s'

%self.name)

#建立例項

p1=person(

)p2=person(

)p1.name=

'鋼鐵俠'

p2.name=

'蜘蛛俠'

p1.speak(

)p2.speak(

)你好,我是鋼鐵俠

你好,我是蜘蛛俠

出問題:

(1) name屬性時必須的

(2) name屬性是不同的

(3) 手動新增例項化物件屬性值的時候容易出錯

在類中定義特殊方法,該方法都是以雙下劃線開頭 雙下劃線結尾:init

特殊方法不需要我們自己呼叫,

特殊方法會在特殊時自己呼叫特殊方法。如果類中有類屬性,則優先執行類屬性,在執行特殊方法。

class

person

:def

__init__

(self,name)

: self.name=name

defspeak

(self)

:print

('你好,我是%s'

%self.name)

p1=person(

'牛叉'

)#將屬性放於例項物件中

p2=person(

'走你'

)p1.speak(

)p2.speak(

)你好,我是牛叉

你好,我是走你

class 類名(

[父類]):

公共屬性...

# 物件的初始化方法

def__init__

(self,..

..):

....

# 其他的方法

defmethod1

(self):.

..defmethod2

(self):.

..例項化物件...

..

python之物件導向

類 是乙個特殊的物件,class a 定義的類屬於 類物件 類的例項 obj a 屬於 例項物件 例項屬性 init 定義例項屬性 例項方法 self 物件名.方法名 類屬性 針對類物件定義的屬性,訪問類屬性方法 類名.類屬性 物件名.類屬性 類方法 針對類物件定義的方法,內部可直接訪問類屬性和其他...

python之物件導向

python中一切皆物件 class 定義的類屬於類物件 obj1 屬於例項物件 在程式執行時,類同樣會載入到記憶體,類物件在記憶體中只有乙份,使用乙個類可以建立出很多例項物件 除了封裝例項的屬性和方法外,類物件還可以擁有自己的屬性和方法 類屬性和例項屬性 類屬性就是給類物件中定義屬性,通常用來記錄...

python之物件導向

物件導向介紹 一 物件導向和面向過程 面向過程 核心過程二字,過程即解決問題的步驟,就是先幹什麼後幹什麼 基於該思想寫程式就好比在這是一條流水線,是一種機械式的思維方式 優點 複雜的過程流程化 缺點 擴充套件性差 物件導向 核心是物件二字,物件指特徵與技能的結合體 基於該思想編寫程式就好比在創造乙個...