python 物件導向(一)

2021-08-03 15:58:50 字數 3530 閱讀 4785

def 函式名():

***x

定義乙個類的方式為:

class 類名:

***xx

#定義乙個貓類

class

cat:

#屬性#方法

defeat

(self):

print('%s吃%s'%("-"*5,'-'*5))

defplay

(self):

print('-----玩-----')

xiaohuamao = cat().eat()

#列印結果-----吃-----

獲取物件屬性

#定義乙個貓類

class

cat:

#屬性#方法

defeat

(self):

print('%s吃%s'%("-"*5,'-'*5))

defplay

(self):

print('-----玩-----')

#定義乙個獲取物件屬性的方法

defprintattrs

(self):

#這個self有點像this 表示這個物件的屬性,當在下面定義color,方法中就可以使用

print(self.color)

xiaohuamao = cat()

#給小花貓物件新增屬性

xiaohuamao.color = '紅色'

#獲取小花貓的屬性

a = xiaohuamao.color

print(a)#列印紅色

xiaohuamao.printattrs()#列印紅色

綜合上面的**的出來的結論

給乙個物件新增屬性方法為:

物件名.新的屬性名 = 值

獲取這個物件的屬性,2種方法:

1. 物件.屬性

2. 定義乙個方法,這個方法中,使用 self.屬性

初始化類init(self)

#定義乙個貓類

class

cat:

#屬性#初始化

def__init__

(self,color):

print(color,"初始化")

cat('紅色')#列印出來的結果是紅色 初始化

#定義乙個貓類

class

cat:

#屬性#初始化

def__init__

(self,newcolor):

#這個物件color屬性賦值

self.color=newcolor

print(newcolor,"初始化")

#方法defeat

(self):

print('%s吃%s'%("-"*5,'-'*5))

defplay

(self):

print('-----玩-----')

#定義乙個獲取物件屬性的方法

defprintattrs

(self):

# print(self.color)

#這樣生成的是這個類的屬性,當物件呼叫時,因為**塊最先生成,可以宣告這個物件的屬性

xiaohuamao = cat("紅色")

xiaohuamao.printattrs()#列印結果紅色

init()方法

1. 是python自動呼叫的方法,呼叫的時間為:建立完物件之後,立馬自動呼叫

2. 不需要開發者呼叫,即 物件名.init()

3. 這個方法一般情況下會完成一些預設的事情,比如新增一些屬性

class

***x:

def__init__

(self, new_a, new_b):

self.a = new_a

self.b = new_b

注意:new_a、new_b 是區域性變數,並不是物件的屬性,如果想在__init__方法中新增屬性的話,需要使用類似

self.屬性名 = 值

的格式,此時self.a = new_a表示的是給物件新增乙個屬性,這個屬性名為a,這個屬性的值為區域性變數new_a裡面的值

_ str _

#定義乙個貓類

class

cat:

def__init__

(self,newcolor):

self.color = newcolor

#讓物件接受返回值

def__str__

(self):

return self.color

wangcai = cat('黑')

#如果沒有str返回應該是記憶體位址,用了str方法列印結果黑

print (wangcai)

物件導向烤地瓜

class

sweetpotato:

def__init__

(self):

#屬性初始化賦值

self.cookedalevel = 0

self.cookedstring = '生的'

self.condiments =

#烤的時間

defcook

(self,times):

self.cookedalevel += times

if self.cookedalevel > 8:

self.cookedstring = '木炭'

elif self.cookedalevel > 5:

self.cookedstring = "烤好了"

elif self.cookedalevel > 3:

self.cookedstring = '半生不熟'

else:

self.cookedstring = '生的'

#新增作料

defaddcondiments

(self,temp):

#物件返回值

def__str__

(self):

str_cond=''

for temp in self.condiments:

str_cond +=temp+','

#用切片去逗號

return

'地瓜的生熟度'+self.cookedstring+'等級'+str(self.cookedalevel)+str_cond[:-1]

print('準備烤地瓜了')

digua = sweetpotato()

digua.cook(1)

digua.addcondiments("芥末")

digua.addcondiments("芥末")

digua.addcondiments("芥末")

print(digua)

python物件導向(一)

物件導向最重要的概念就是類 class 和例項 instance 必須牢記類是抽象的模板,比如student類,而例項是根據類建立出來的乙個個具體的 物件 每個物件都擁有相同的方法,但各自的資料可能不同。仍以student類為例,在python中,定義類是通過class關鍵字 class stude...

python物件導向一

什麼是物件?物件就是記憶體中儲存指定資料的一塊區域,實際上物件就是乙個容器專門用來儲存資料 id 標識 type 型別 value 值 所謂物件導向簡單理解就是語言中所有的操作都是通過物件來進行的 面向過程 物件導向 把大象放進冰箱分幾步?開啟冰箱 對應開啟功能 裝大象 對應儲存功能 關門 對應關閉...

Python 物件導向 一

python是一門物件導向的程式語言 所謂物件導向的語言,簡單理解就是語言中的所有操作都是通過物件來進行的。面向過程 面向過程指將我們的程式分解為乙個乙個步驟,通過對每個步驟的抽象來完成程式。這種編寫方式往往只適用於乙個功能,如果要實現別的功能,往往復用性比較低。這種程式設計方式符合人類的思維,編寫...