當呼叫乙個物件的屬性時,解析器會先在當前物件中尋找是否含有該屬性,如果有則直接返回當前物件的屬性值;如果沒有,則去當前類物件當中尋找。如果類物件中沒有,則報錯。
即:例項化物件先找自己屬性,自己不存在再找類物件,類物件沒有則報錯。
果屬性和方法是所有勢力所共享的,則應該儲存到類物件中;如果屬性和方法是某個例項所獨有的,則應該儲存到相應的例項物件中。一般情況下,屬性儲存到例項物件當中,方法則儲存到類物件當中。
在類中,方法每次呼叫時解析器會自動傳遞乙個實參;
如果是例項化物件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之物件導向
物件導向介紹 一 物件導向和面向過程 面向過程 核心過程二字,過程即解決問題的步驟,就是先幹什麼後幹什麼 基於該思想寫程式就好比在這是一條流水線,是一種機械式的思維方式 優點 複雜的過程流程化 缺點 擴充套件性差 物件導向 核心是物件二字,物件指特徵與技能的結合體 基於該思想編寫程式就好比在創造乙個...