python3 類的學習

2022-08-18 10:51:14 字數 1243 閱讀 2218

# -*-coding:utf-8-*-

# 定義類是通過class關鍵字,class後面緊接著是類名,即student,類名通常是大寫開頭的單詞,緊接著是(object),表示該類是從哪個類繼承下來的,繼承的概念我們後面再講,通常,如果沒有合適的繼承類,就使用object類,這是所有類最終都會繼承的類

class

student

(object):

# 由於類可以起到模板的作用,因此,可以在建立例項的時候,把一些我們認為必須繫結的屬性強制填寫進去。通過定義乙個特殊的__init__方法,在建立例項的時候,就把name,score等屬性綁上去

def__init__

(self, name, score):

self.name = name

self.score = score

# 注意到__init__方法的第乙個引數永遠是self,表示建立的例項本身,因此,在__init__方法內部,就可以把各種屬性繫結到self,因為self就指向建立的例項本身

# 既然student例項本身就擁有這些資料,要訪問這些資料,就沒有必要從外面的函式去訪問,可以直接在student類的內部定義訪問資料的函式,這樣,就把「資料」給封裝起來了。這些封裝資料的函式是和student類本身是關聯起來的,我們稱之為類的方法

defprint_score

(self):

print('%s: %s' % (self.name, self.score))

# 封裝的另乙個好處是可以給student類增加新的方法

defget_grade

(self):

if self.score >= 90:

print('youxiu')

elif self.score >= 60:

print('lianghao')

else:

print('bujige')

# 有了__init__方法,在建立例項的時候,就不能傳入空的引數了,必須傳入與__init__方法匹配的引數,但self不需要傳,python直譯器自己會把例項變數傳進去

bart = student('bart simpson', 59)

lisa = student('lisa simpson', 87)

bart.print_score()

bart.get_grade()

lisa.print_score()

lisa.get_grade()

python3元類 python3元類的呼叫順序

在嘗試理解元類建立類例項的順序時,我感到困惑.根據該圖 source 我鍵入以下 進行驗證.class meta type def call self print meta call super meta,self call def new mcs,name,bases,attrs,kwargs p...

python3 類的繼承

基本語法 class derivedclassname baseclassname1 1 需要注意圓括號中父級類的順序,若是父級類中有相同的方法名,而在子類使用時未指定,python從左至右搜尋 即方法在子類中未找到時,從左到右查詢父級類中是否包含方法。示例 class a object pass ...

Python3 類的繼承

coding utf 8 物件導向程式設計的三個特點 封裝 繼承 多型 函式是封裝 的基本單位,類和物件的封裝是屬於更高階的封裝方式 在類中經常會宣告一些物件屬性,用來儲存資料的,在類中宣告的函式,是用來運算元據的,不同的功能可以封裝成不同的函式 繼承 特點 1.子類繼承父類,子類擁有父類的所有屬性...