開發者學堂課程【Python 語言基礎 3:函數、面向對象、異常處理:屬性和方法】學習筆記,與課程緊密聯系,讓使用者快速學習知識。
課程位址:
https://developer.aliyun.com/learning/course/601/detail/8755屬性和方法
内容簡介:
一、類的分類
二、例子
-類和對象都是對現實生活中的事物或程式中的内容的抽象
-實際上所有的事物都由兩部分構成:
1.資料(屬性)
2.行為(方法)
-在類的代碼塊中,我們可以定義變量和函數,
變量會成為該類執行個體的公共屬性,所有的該類執行個體都可以通過 對象.屬性名 的形式通路
函數會成為該類執行個體的公共方法,所有的該類執行個體都可以通過 對象.方法名()的形式調用方法
-注意:
方法調用時,第一個參數由解析器自動傳遞,是以定義方法時,至少要定義一個形參!
-執行個體為什麼竜通路到類中的屬性和方法
類中定義的屬性和方法都是公共的,任何該類執行個體都可以通路
-屬性和方法查找的流程
當我們調用一個對象的屬性時,解析器會先在目前對象中尋找是否含有該屬性,
如果有,則直接傳回目前的對象的屬性值,
如果沒有,則去目前對象的類對象中去尋找,如果有則傳回類對象的屬性值,
如果沒有則報錯!
-類對象和執行個體對象中都可以儲存屬性(方法)
-如果這個屬性(方法)是所有的執行個體共享的,則應該将其儲存到類對象中
-如果這個屬性(方法)是某個執行個體獨有,則應該儲存到執行個體對象中
-一般情況下,屬性儲存到執行個體對象中,而方法需要儲存到類對象中
class Person
在類的代碼塊中,我們可以定義變量和函數
在類中我們所定義的變量,将會成為所有的執行個體的公共屬性,所有執行個體都可以通路這些變量。
name=’swk’
公共屬性,所有執行個體都可以通路
在類中也可以定義函數,類中的定義的函數,我們稱為方法
這些方法也可以通過該類的所有執行個體來通路。
def say_hello(self);
方法每次被調用時,解析器都會自動傳遞的一個實參, 第一個參數,就是調用方法的對象本身,
如果是 p1 調的,則第一個參數就是 p1 對象
如果是 p2 調的,則第一個參數就是 p2 對象
一般我們都會将這個參數命名為 self
say_hello() 這個方法,可以顯示如下格式的資料:
你好!我是xxx
在方法中不能直接方法類中的屬性
print(’你好!我是%s‘%self,name)
建立 person 的執行個體
P1=person()
P2=person()
Print(p2.name)
調用方法,對象。方法名()
方法調用和函數調用的差別
如果是函數調用,則調用時幾個參數,就會有幾個實參
但是如果是方法調用,預設傳遞一個參數,是以方法中至少要定義一個形參
修改 p1 的 name 屬性
p1.name=’豬八戒‘
P2.name=’沙和尚‘
p1.say_hello() ‘你好!我是豬八戒’
p1【variable】
p1.name
p1.name
del p2.name删除p2的name屬性
print(p1.name)
print(p2.name)