物件導向03

2021-09-23 07:39:32 字數 2152 閱讀 9174

#:

將資料(屬性)和行為(方法)包裝到類物件中,在方法內部對屬性進行操作,在類物件的外部呼叫方法

在類物件的內部通過訪問控制把某些屬性和方法隱藏起來,不允許在類物件外部直接訪問,而是在類物件內部對外提供公開的介面方法以訪問隱藏的資訊。

介面

class student(object):

def __init__(self):

self.__score = 90

def get_score(self):

return self.__score

def set_score(self,score):

if 0 <= score <= 100:

self.__score = score

else:

raise valueerror("成績必須在0~100值間")

s = student()

s.get_score()

s.set_score(88)

print(s.get_score())

s.set_score(123)

當幾個類物件中有共同的屬性和方法時,就可以把這些屬性和方法抽象並提取到乙個基類中,每個類物件

特有的屬性和方法還是在本類物件中定義,這樣,只需要讓每個類物件都繼承這個基類,就可以訪問基類中

的屬性和方法了。繼承基類的每個類物件被稱為派生類。基類也被稱為父類或超類,派生類也被稱為子類。

python中的所有類物件都繼承自乙個統一的基類:object。這就是為什麼我們在定義類物件時要在類名後

面新增object了

單繼承:子類只有乙個直接父類

多繼承:多個

子類會繼承所有(直接、間接)父類的所有屬性和方法

class animal(object):

def eat(self):

print("吃飯")

def drink(self):

print("喝水")

class dog(animal):

def swim(self):

print("游泳")

dog = dog()

dog.eat()

dog.drink()

dog.swim()

如果子類對繼承自父類的某個屬性或方法不滿意,可以在子類中對其進行重寫從而提供自定義的實現,重寫的方式為:在子類中定義與父類中同名的屬性或方法(包括裝飾器)
子類重寫父類的屬性和方法後,通過子類或其實例物件只能訪問子類重寫後的屬性和方法,而無法再訪問父類中被重寫的屬性和方法

父類中被重寫的名為***的方法,在子類重寫後的方法中可以通過supper().***進行呼叫

mro方法的解析順序

如果想呼叫父類被重寫的方法,給super()傳入兩個實參:super(a_type,obj),第乙個是類物件,第二個是例項物件

被指定的父類是obj所對應類物件中的mro中,a_type後面的那個類物件

class parenclass(object):

ca = 'ca (父類)'

ca = 18

def __init__(self):

print('__init__()被呼叫了(父類)')

def im(self):

print('im()被呼叫了(父類)')

@classmethod

def cm(cls):

print('cm()被呼叫了(父類)')

class childclass(parenclass):

# ca = 'ca (子類)'

def __init__(self):

print('__init__()被呼叫了(子類)')

def im(self):

print('im()被呼叫了(子類)')

@classmethod

def cm(cls):

print('cm()被呼叫了(子類)')

cc = childclass()

print(childclass.ca)

print(cc.ca)

cc.im()

childclass.cm()

cc.cm()

物件導向 03

類屬性和例項屬性的概念 類屬性是給類物件 類是乙個特殊的物件 中定義的屬性,通常用來記錄與這個類相關的特徵,類屬性不會用於記錄具體物件的特徵。類屬性的定義是在初始化方法之外的 例項物件的屬性叫做例項屬性,在初始化方法內部定義 類屬性和例項屬性的訪問 類屬性的訪問是類名.類屬性 例項屬性的訪問是例項物...

物件導向03

1.static 靜態的 靜態不能直接呼叫非靜態,非靜態可以呼叫靜態 1 靜態變數 物件共有的屬性可以定義為靜態 1.1 由static修飾 1.2 屬於類的,存在方法區中,只有乙份,隨著類載入而使用 1.3 常常通過類名.來訪問 1.4 何時用 所有物件的資料一樣時使用 2 靜態方法 2.1 由s...

python 物件導向 03 物件導向基礎語法

在python中可以使用以下兩個方法驗證 在識別符號 資料後輸入乙個.然後按下tab鍵,ipython會提示該物件能夠呼叫的方法列表 使用內建函式dir傳入識別符號 資料,可以檢視物件內的所有屬性及方法 提示 方法名 格式的方法是python提供的內建方法 屬性,稍後會給大家介紹一些常用的 內建方法...