Python中一切皆對象,所以很有必要了解一下類和對象的概念。
類可以看成是抽象的模板,比如:智能手機。對象就是根據這個模板製造出來的實物,比如iPhone ,華爲,小米,OPPO等各種品牌的智能手機。
類定義
類包含屬性和方法,描述具有共同屬性和行爲的一類事物。
通過 class
關鍵字定義類,駝峯命名,類名首字母大寫,見名知意。
下面定義一個簡單的 Students
類
#定義類
class Students:
#類屬性
people="students"
#帶self的叫實例方法
def study(self):
print("學生要學習")
加python學習qq羣:775690737 送python零基礎入門學習資料+99個源碼
類屬性和實例方法的調用
#打印類屬性
print(Students.people)
#創建實例化對象
Alice=Students()
#實例訪問類屬性
print(Alice.people)
#訪問實例方法study
Alice.study()
Students().study().
加python學習qq羣:775690737 送python零基礎入門學習資料+99個源碼
實例屬性
實例屬性通過實例變量,或者在初始化方法中通過 self
變量綁定。
class StudentNew():
def __init__(self, name):#初始化函數,屬於實例方法
self.name = name
s=StudentNew("小明")
s.age=10
#打印實例屬性
print(s.name,s.age)
#修改實例屬性
s.name="小林"
加python學習qq羣:775690737 送python零基礎入門學習資料+99個源碼
繼承
繼承的好處是:子類獲得了父類的全部屬性和方法。
創建一個高中生類,繼承 Students
類。
class Senior(Students):
pass
#打印類屬性
print(Senior.people)
#調用study方法
Senior().study()
子類重寫父類的方法
class Senior(Students):
who = "高中生"
def study(self):
print("高中生要學習")
print(Senior.people)
Senior().study()
加python學習qq羣:775690737 送python零基礎入門學習資料+99個源碼
類方法和靜態方法
下面重新創建一個 Students
類。
class Students:
people="學生"
#初始化方法
def __init__(self,name):
self.name=name
def study(self):
print("{}{}要學習".format(self.people,self.name))
#靜態方法
@staticmethod
def write(homework):
print("{}作業該寫了".format(homework))
#類方法
@classmethod
def play(cls):
print("{}也要出去玩".format(cls.people))
加python學習qq羣:775690737 送python零基礎入門學習資料+99個源碼
實例方法,靜態方法,類方法的區別:
1.定義區別
實例方法,第一個參數必須是 self
,表示實例化對象本身。
類方法,使用裝飾器@classmethod標識,第一個參數必須是 cls
,表示類對象
靜態方法,使用修飾器@staticmethod標識,不需要定義特殊參數
2.訪問權限
實例方法可以使用類屬性和實例屬性。
類方法可以使用類屬性,不能使用實例屬性。
靜態方法不能使用類或實例的任何屬性和方法。
3.三者的調用的區別
調用實例方法必須先實例化對象
s=Students("小明")
s.study()
靜態方法,類方法可以使用實例對象和類對象(類名)去訪問
s.write("語文")
Students.write("語文")
s.play()
Students.play()
加python學習qq羣:775690737 送python零基礎入門學習資料+99個源碼