類(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...