2.類3.類的定義
4.引數self
5.總結
# 自己定義乙個類
# 使用class關鍵字來定義
# 語法:
# class 類名():
# **塊
class
myclass
:pass
m = myclass(
)# m是通過myclass建立的物件、m是myclass的例項
m2 = myclass(
)# m2也是通過myclass建立的物件、m2是myclass的另乙個例項,m和m2是一類物件都是通過myclass這個類所建立的類
# 通過isinstance() 用來檢測乙個類是否是另乙個類的例項
r1 =
isinstance
(m,myclass)
r2 =
isinstance
(m2,myclass)
print
(r1)
# 輸出為ture,說明類m是類myclass的例項
print
(r2)
# 輸出為ture,說明類m是類myclass的例項
# 可以向物件中新增變數,物件中的變數稱作屬性
# 語法: 物件.屬性名 = 屬性值
m.name =
'葫蘆娃'
print
(m.name)
# 輸出為葫蘆娃
# 將葫蘆娃這個值新增到物件m屬性中,當需要用時,在物件中的屬性中尋找
呼叫方法:物件.方法名()
方法呼叫和函式呼叫的區別
函式呼叫,呼叫時有幾個形參,就會傳遞幾個實參。如果是方法呼叫,預設傳遞乙個引數,所以方法中至少得有乙個形參
在類**塊中,我們可以定義變數和函式
# 定義乙個表示食物的類
class
food
: name1 =
"蘋果"
# 在類中定義的變數,將會成為所有例項的公共屬性,所有例項都可以訪問這些變數
name2 =
"土豆"
# 在類中定義的變數,將會成為所有例項的公共屬性,所有例項都可以訪問這些變數
defspeak
(self)
:# 在類中定義的函式我們稱之為方法,這些方法可以通過類的所有例項來訪問
print
('好吃!'
)# 如果是方法呼叫的時候預設傳遞乙個引數,所以方法中至少要定義乙個形參
a1 = food(
)# a1是通過food建立的物件、a1是food的例項
a2 = food(
)# a2是通過food建立的物件、a2是food的例項
print
(a1.name1)
# 輸出為蘋果
print
(a2.name1)
# 輸出為蘋果
print
(a2.name2)
# 輸出為土豆
'''屬性和方法的查詢流程
當我們呼叫乙個物件的屬性時,解析器會現在當前的物件中尋找是否還有該屬性,如果有,則直接返回當前的物件的屬性值。
如果沒有,則去當前物件的類物件中去尋找,如果有則返回類物件的屬性值。如果沒有就報錯
'''print
(a1.name1)
# 輸出為蘋果
# 因為在物件a1屬性值中沒有找到值name1,所以會到建立這個類的類food這個所有例項的公共屬性中尋找,
# 找到了則直接輸出,如果在建立這個類的類food的公共屬性中沒有找到則會報錯
# 因為類中定義的屬性和方法都是公共的,任何該類的例項都可以訪問,而物件a1,a2都是類food的例項
class
food
: name =
"蘋果"
defspeak
(self)
:print
('%s,好吃!'
%self.name)
'''如果是方法呼叫的時候預設傳遞乙個引數,所以方法中至少要定義乙個形參
第乙個引數就是呼叫方法的本身
如果是a1呼叫,則第乙個引數就是a1
如果是a2呼叫,則第乙個引數就是a2
一般我們都會將這個引數命名為self
'''a1 = food(
)# a1是通過food建立的物件、a1是food的例項
a2 = food(
)# a2是通過food建立的物件、a2是food的例項
a1.name =
"香蕉"
# 將香蕉這個值儲存到a1這個物件的屬性中
a2.name =
"桃子"
# 將桃子這個值儲存到a2這個物件的屬性中
a1.speak(
)# 輸出為香蕉,好吃!
a2.speak(
)# 輸出為桃子,好吃!
python 物件導向(上)
1.物件導向的思想 面向過程程式設計最易被初學者接受,其往往用一長段 來實現指定功能,開發過程的思路 是將資料與函式按照執行的邏輯順序組織在一起,資料與函式分開考慮。例如 菜鳥買電腦 1 自己買 在網上查詢資料 根據自己預算和需求定電腦的型號 macbook 15 頂配 1w8 去市場找到蘋果店各種...
python物件導向上
我們目前學習的都是python的內建物件,但是內建物件並不都能滿足我們的需求,所以我們在開發中經常要自定義一些物件 類簡單理解它就是相當於乙個圖紙,在程式彙總我們需要根據類來建立物件。類就是物件的圖紙 我們也稱物件是類的例項 instance 可呼叫isinstan 例項物件,類名 判斷是否為該類 ...
python物件導向上
面向過程程式設計 窮人的思想 一遇到問題馬上想到的是怎麼寫 把這個功能實現 邏輯 函式式程式設計 小資的思想 一遇到問題馬上想到有沒有乙個函式已經把這個功能實現了,如果有就拿過來用,沒有就定義乙個有這個功能的函式 函式 物件導向程式設計 富豪的思想 一遇到問題馬上想到有沒有乙個類中有這個方法能夠把這...