520沒對象?那來學下Python類與對象

Python中一切皆對象,所以很有必要了解一下類和對象的概念。

類可以看成是抽象的模板,比如:智能手機。對象就是根據這個模板製造出來的實物,比如iPhone ,華爲,小米,OPPO等各種品牌的智能手機。

類定義

類包含屬性和方法,描述具有共同屬性和行爲的一類事物。

通過class關鍵字定義類,駝峯命名,類名首字母大寫,見名知意。

下面定義一個簡單的Students

#定義類
class Students:
    #類屬性
    people="students"
    #帶self的叫實例方法
    def study(self):
        print("學生要學習")

類屬性和實例方法的調用

#打印類屬性
print(Students.people)
#創建實例化對象
Alice=Students()
#實例訪問類屬性
print(Alice.people)


#訪問實例方法study
Alice.study()
Students().study()

實例屬性

實例屬性通過實例變量,或者在初始化方法中通過self變量綁定。

class StudentNew():
    def __init__(self, name):#初始化函數,屬於實例方法
        self.name = name


s=StudentNew("小明")
s.age=10
#打印實例屬性
print(s.name,s.age)
#修改實例屬性
s.name="小林"

繼承

繼承的好處是:子類獲得了父類的全部屬性和方法。

創建一個高中生類,繼承Students類。

class Senior(Students):
    pass
#打印類屬性
print(Senior.people)
#調用study方法
Senior().study()

子類重寫父類的方法

class Senior(Students):
    who = "高中生"
    def study(self):
        print("高中生要學習")


print(Senior.people)
Senior().study()

類方法和靜態方法

下面重新創建一個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))

實例方法,靜態方法,類方法的區別:

1.定義區別

實例方法,第一個參數必須是self,表示實例化對象本身。

類方法,使用裝飾器@classmethod標識,第一個參數必須是cls,表示類對象

靜態方法,使用修飾器@staticmethod標識,不需要定義特殊參數

2.訪問權限

實例方法可以使用類屬性和實例屬性。

類方法可以使用類屬性,不能使用實例屬性。

靜態方法不能使用類或實例的任何屬性和方法。

3.三者的調用的區別

調用實例方法必須先實例化對象

s=Students("小明")
s.study()

靜態方法,類方法可以使用實例對象和類對象(類名)去訪問

s.write("語文")
Students.write("語文")
s.play()
Students.play()


文章都看完了不點個

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章