溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python面向對象編程的方法

發布時間:2020-08-25 11:21:11 來源:億速云 閱讀:157 作者:小新 欄目:編程語言

這篇文章將為大家詳細講解有關python面向對象編程的方法,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

面向對象編程簡單來說就是基于對 類 和 對象 的使用,所有的代碼都是通過類和對象來實現的編程就是面向對象編程!

面向對象的三大特性:封裝、繼承、多態

首先創建一個類

#使用class創建一個School類,類中有個student方法
class School:
    def student(self):
        pass
a1=School()

一、封裝

1、封裝:將某些內容先封裝到一個地方,等到需要的時候再去調用

class School:    def __init__(self,name,age):    #構造方法,創建對象是執行
        self.name=name
        self.age=age#創建對象a1,a2a1=School("zhangsan",18)
a2=School("lisi",18)

上面代碼實現的就是封裝的功能,把各自的name和age分別封裝到了self的name和age屬性中,就等于被封裝到了對象a1和a2中

類中定義的函數叫做方法,帶有__init__的函數稱為構造方法,在創建a1,a2對象時會自動執行。

2、調用:調用有兩種方式,通過對象直接調用和通過self間接調用

通過對象直接調用

class School:    def __init__(self,name,age):
        self.name=name
        self.age=age    def student(self):        print("name:%s,age:%s"%(self.name,self.age))#創建對象a1,a2a1=School("zhangsan",18)
a2=School("lisi",18)
print a1.name,a1.age
print a2.name,a2.age#執行結果: zhangsan 18
      lisi 18

通過self間接調用

class School:
    def __init__(self,name,age):
        self.name=name
        self.age=age

    def student(self):
        print("name:%s,age:%s"%(self.name,self.age))
#創建對象a1,a2
a1=School("zhangsan",18)
a2=School("lisi",18)

#執行類中的方法時,通過self間接調用被封裝的內容
a1.student()
a2.student()
#執行結果:
#name:zhangsan,age:18
#name:lisi,age:18

二、繼承

1、繼承:既派生類(子類)可以繼承基類(父類)的方法,我們可以將多個類共有的方法提取到父類當中,這樣子類僅需繼承父類而不必一一實現每個方法

在類名后面括號中寫上另一個類,表示繼承了那個類

class School:
    def __init__(self,name,age):
        self.name=name
        self.age=age

    def student(self):
        print("name:%s,age:%s"%(self.name,self.age))
    def classroom(self):
        print("%s去教室"%self.name)

class SchoolA(School):  #SchoolA繼承School
    def __init__(self,name):
        self.name=name

class SchoolB(SchoolA): #SchoolB繼承SchoolA
    def __init__(self,name):
        self.name=name
#創建對象a1
a1=SchoolA("zhangsan")
a1.classroom()
#創建對象a2
a2=SchoolB("lisi")
a2.classroom()

#執行結果:
#   zhangsan去教室
#   lisi去教室

在上面代碼中我們可以看到,在SchoolA和SchoolB中都沒有classroom方法,但由于SchoolB繼承了SchoolA,而SchoolA又繼承了School,所以他們創建對象后都能

調用School中的classroom方法。

2、多繼承

在python中,類還可以繼承多個類,在繼承多個類時,他對類中的函數查找有兩種方式

深度優先:類是經典類時,多繼承情況下,會按照深度優先方式查找

廣度優先:類是新式類時,多繼承情況下,會按照廣度優先方式查找

(在python3.x中)都默認為廣度優先,但還是可以了解一下兩個的區別,新式類:當前類或者基類繼承了objiect類就叫新式類,否者就是經典類。

關于python面向對象編程的方法就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女