通俗易懂的 理解 Python3類和物件

2021-08-31 03:33:33 字數 2014 閱讀 6087

類(class):用來描述具有相同的屬性和方法的物件的集合。它定義了該集合中每個物件所共有的屬性和方法。類=屬性+方法

通俗的講:類:  動物,在你腦子裡有個模型,一想到動物就會知道比如有毛啊,四條腿之類的。就是所有動物共有的特徵。

物件:具體的乙隻貓。或具體的乙隻狗,這就是物件。 物件是建立字類的基礎上的。有了乙個類的模版,我們才能確定某乙個具體的物件。

基本語法:

class classname:    #注意 第乙個字母需要大寫..

類的隱藏變數

class yao:

__name = "yaopengfei" #定義乙個隱藏屬性

def getname(self):

return self.__name

y = yao() #引用的時候一定後面要跟() ps我***忘記查了半天

y.getname()

#結果#yaopengfei

示例:包含隱藏變數的設定,類的繼承。

#定義乙個類

class people:

name = "" #變數賦值就是類的屬性

age = 0

__weight = 0 #這部分定義乙個私有屬性,外部不能訪問,且不能輸出。格式為兩個下劃線

#定義構造方法

def __init__(self,n,a,w): #使用def定義乙個方法,但是與函式定義不同,必須包含self引數,並且作

#為乙個引數,self代表的類的例項。

self.name = n

self.age = a

self._weight = w

def speak(self): #定義乙個使用方法

print('%s 說:%d 歲。' %(self.name,self.age))

# 例項化類

p = people('runoob',10,30)

p.speak()

#定義乙個子類

class student(people):

grade = ''

def __init__(self,n,a,w,g): #重新定義父類的構造

people.__init__(self,n,a,w) #呼叫父類的

self.grade = g

def speak(self): #重新定義父類的方法

print(111)

print("%s 說: 我 %d 歲了,我在讀 %d 年級"%(self.name,self.age,self.grade))

s = student('ken',10,89,3)

s.speak()

類 ,類物件和類例項區分

class x:       #表示定義乙個類

count = 0 #類物件的屬性

a = x() #賦值

b = x()

c = x()

a.count #成為例項物件

0b.count

0c.count

0c.count += 10 # 例項屬性賦值後,會將類的屬性覆蓋掉

c.count

10a.count

0b.count

0x.count += 100 #使用類屬性賦值後,其他未被定義過的例項屬性保持與類屬性一致。

a.count

100b.count

100c.count # 賦值的c.count 還會保持原來賦值後的屬性。

10

如果賦值的變數名和類的名稱一致。將無法呼叫類的屬性。

所有不要試圖在乙個類定義所有的能想到屬性和方法,可以繼承和組合的機制擴充套件,類的方法盡量用動詞,類的屬性用名詞。

通俗易懂 理解「委託」

委託的意義在於實現多型 在於讓物件能夠在程式執行時滿足外界對其的改變。1 乙個物件屬性 動作,如果在編譯時就能確定,可以在這個物件的類裡面來實現。2 乙個物件的屬性 動作,如果在執行時才能確定,則只能通過這個物件的委託來實現。換句話說 類,滿足編譯時對物件的設定和要求。委託,用於滿足執行時對物件的設...

通俗易懂的理解 python 裝飾器

舉例def play print 小王在玩遊戲 sleep 3 print 遊戲結束 我想計算play花費的時間 def play start time.time print 小王在玩遊戲 sleep 3 print 遊戲結束 end time.time print 用時 format end st...

通俗易懂的理解MVC模式

mvc由view檢視,controller控制器,model模型三部分組成。當使用者與view進行互動的時候,會觸發view的一些事件,這些事件會被controller模組監聽到,controller會根據不同的使用者事件去呼叫model層的一些介面,通過這些介面修改model層的資料。在之前vie...