Python繼承,封裝,多型

2021-09-30 17:22:11 字數 2375 閱讀 1806

1.面向過程和物件導向

class 類名():

類體(屬性和方法)

2.建立物件

引用(變數) = 類名()

init(self) 建構函式

3.方法:類方法 物件方法

4.物件導向的三大特性:繼承 封裝 多型

class 子類/派生類(父類/超類/基類):

class a(object):

def a():

pass

pass

class b(a):

pass

class c(b):

pass

class d(a,b,c):

從左到右,整體深度優先,區域性廣度優先(有菱形結構)

覆蓋/重寫

多型:多種形態 : 繼承-重寫(繼承中的重寫)

類與類之間的關係 :繼承 關聯(組合,聚合) 依賴

關聯:乙個類的物件作為另乙個類的屬性

依賴:乙個類的物件作為另乙個類的方法引數

耦合程度:繼承》關聯》依賴

封裝關聯關係優點:

**復用/減少**冗餘

關聯:

class student():

def __init__(self,name):

self.name = name

def study(self):

print("我愛python")

class teacher():

def __init__(self,stu):

self.stu =stu

def teach(self):

print("教%spython"%self.stu.name)

s = student("張三")

t = teacher(s)

t.teach()

依賴

class student():

def __init__(self,name):

self.name = name

def study(self):

print("我愛python")

class teacher():

def teach(self,stu):

print("教%spython"%stu.name)

s = student("張三")

t = teacher()

t.teach(s)

class a():

name = "張三" #類屬性

def __init__(self,age):

self.age=age #物件屬性

@staticmethod

def a():

print("類方法-靜態方法")

def aa(self):

print("物件方法")

print(a.name)

a.a()

a = a(18)

print(a.age)

a.aa()

封裝:

用 __(兩個下劃線來私有化屬性或者方法)

要想讓使用者獲得被私有化的屬性或是方法,可以使用get,set方法

class a():

__name = "張三" #類屬性 實際是這個形式:_a__name

def __init__(self,age): #self._a__age

self.__age=age #物件屬性

@staticmethod

def __a(): #_a__a()

print("類方法-靜態方法")

def __aa(self): #_a__aa()

print("物件方法")

def get_age(self):

return self.__age

def set_age(self,age):

if age>150 or age<0:

print("非法年齡")

else:

self.__age = age

@staticmethod

def get_name():

return a.__name

@staticmethod

def set_name(name):

if isinstance(name, str):

a.__name = name

else:

raise typeerror("型別錯誤,非str型別不能賦值")

a.set_name("李四")

print(a.get_name())

python 類 封裝 繼承 多型

類由一系列函式物件組成,在類中,函式物件稱為方法,方法的第乙個引數必須為self,表示當前例項物件 可把類理解為乙個dict,key為方法名 string型別 value為方法 class animal object def init self,age,color self.age age self...

Python 封裝 繼承 多型 重寫

一 封裝 1 定義 根據職責將屬性和方法封裝到乙個抽象的類中。就是只能在類的內部訪問,外部訪問屬性或方法會報異常。2 實現 python中封裝很簡單,在屬性或者方法名稱前邊加上兩個下劃線就好。二 繼承 1 定義 指提供了同一類物件共性的處理方法,子類繼承父類共性的東西。有利於 的復用性。三 多型 1...

封裝,繼承,多型

一 1 封裝 該隱藏隱藏,該公開的公開 屬性隱藏,同時提供get set方法 有些方法應該隱藏 方法宣告公開,實現隱藏。實現的改變對架構的影響最小 2 繼承 一般 特殊 單繼承 乙個類最多只能有乙個直接父類。類之間可以形成樹狀關係 根據訪問許可權,子類如果可以訪問父類的屬性和方法,就能繼承 priv...