1.為了更好的理解面向對象編程,下面以“烤地瓜”為案例,進行分析

2.分析“烤地瓜”的屬性和方法

1.示例屬性如下:

·cookedLevel :這是数字;0~3表示還是生的,超過3表示半生不熟,超過5表示已經烤好了,超過8表示已經烤成木炭了!我們的地瓜開始時時生的

·cookedString :這是字符串;描述地瓜的生熟程度

·condiments :這是地瓜的配料列表,比如番茄醬、芥末醬等


2.示例方法如下:

·cook():把地瓜烤一段時間

·addCondiments():給地瓜添加配料

·__init__():設置默認的屬性

·__str__():讓print的結果看起來更好一些


3.定義類,並且定義__init__()方法


#定義`地瓜`類

classSweetPotato:

‘這是烤地瓜的類’

#定義初始化方法

def__init__(self):

self.cookedLevel =0

self.cookedString =”生的”

self.condiments = []

4.添加”烤地瓜”方法


5.完整代碼




3.應用:存放傢具

1.分析


2.代碼




總結:如果一個對象與另外一個對象有一定的關係,那麼一個對象可用是另外一個對象的屬性

4.保護對象的屬性

如果有一個對象,當需要對其進行修改屬性時,有2種方法

·對象名.屬性名=數據—->直接修改

·對象名.方法名() —->間接修改

為了更好的保存屬性安全,即不能隨意修改,一般的處理方式為

·將屬性定義為私有屬性

·添加一個可以調用的方法,供調用


運行結果:

總結

·Python中沒有像C++中public和private這些關鍵字來區別公有屬性和私有屬性

·它是以屬性命名方式來區分,如果在屬性名前面加了2個下劃線’__’,則表明該屬性是私有屬性,否則為公有屬性(方法也是一樣,方法名前面加了2個下劃線的話表示該方法是私有的,否則為公有的)。

5.__del__()方法

創建對象后,python解釋器默認調用__init__()方法;

當刪除一個對象時,python解釋器也會默認調用一個方法,這個方法為__del__()方法



結果:


總結:

·當有1個變量保存了對象的引用時,此對象的引用計數就會加1

·當使用del刪除變量指向的對象時,如果對象的引用計數不會1,比如3,那麼此時只會讓這個引用計數減1,即變為2,當再次調用del時,變為1,如果再調用1次del,此時會真的把對象進行刪除

分享