物件導向的三大特徵:封裝,繼承,多型
1.封裝: 提高程式的安全性
2.繼承: 提高**的復用性
3.提高程式的可拓展性和可 維護性。
我們來看看私有方式的使用:
# 作者:網際網路老辛
# 開發時間:2021/4/4/0004 22:11
class student:
def __init__(self,name,age):
self.name=name
self.__age=age
def show(self):
print(self.name,self.__age)
laoxin=student('網際網路老辛',38)
laoxin.show()
print(laoxin.name)
print(laoxin.__age)
私有屬性如何被訪問呢?
可以通過下面的形式來訪問
print(laoxin.student_ _ age)的形式進行訪問
但一般情況下,我們看到私有方法,就盡量不要訪問了。
語法格式:
class 子類類名(父類1,父類2)
pass
# 作者:網際網路老辛
# 開發時間:2021/4/4/0004 22:11
class person(object):
def __init__(self,name,age):
self.name=name
self.age=age
def info(self):
print(self.name,self.age)
class student(person):
def __init__(self,name,age,sut_no):
程式設計客棧 super().__init__(name,age)
self.sut_no=sut_no
class teacher(person):
def __init__(self,name,age,teachofyear):
super(teacher, self).__init__(name,age)
self.teachofyear=teachofyear
程式設計客棧
stu=student('網際網路老辛',40,1001)
teacher=teacher('高勝寒',38,10)
stu.info()
teacher.info()
在python中還可以支援多繼承
比如校長,既能整合person類,又能繼承teacher類。
多型就是具有多種形態,意思是,即使不知道乙個變數所引用的物件到底是什麼型別,仍然可以通過這個變數呼叫方法,在執行過程中根據變數所引用的物件型別,動態的決定呼叫哪個物件中的方法。
# 作者:網際網路老辛
# 開發時間:2021/4/4/0004 22:11
class animal(object):
def eat(self):
print("動物需要吃東西")
class dog(animal):
def eat(self):
print('狗吃骨頭') #重寫方法
class cat(animal):
def eat(self):
print('貓吃魚')
class person: #沒有整合任何類
def eat(self):
print('人吃植物')
def fun(obj):
obj.eat()
fun(cathnncymrf())
fun(dog())
fun(animal())
fun(person()) #但是他也能呼叫方法
原因:python是一種動態語言,靜態語言要想實現多型,必須明確繼承,然後才能使用,而動態語言只關心是否具有這個方法,關於類不管。
python物件導向開發 封裝,繼承和多型
1.乙個功能封裝成乙個函式,目的是為了重複使用 方便檢視 1.如果多的子類都需要都乙個方法,那麼我們會把這個方法給父類,目的,重複使用 2.繼承順序根據 類.mro 3.在開發中最好是先呼叫父類的這個方法也就是super init 然後在新增自己的功能,保證程式的穩定.以下的 的輸出將是什麼?說出你...
python物件導向之封裝 繼承和多型
類似於模板,把事物共有的特徵和行為進行打包,然後建立出來的物件就會具有這些特徵和行為。1.封裝資料的主要原因是 保護隱私 和 隔離複雜度 2.類的結構 class 類名 object 類名的命名規則 大駝峰命名法 每個單詞首字母大寫,單詞之間沒有下劃線 類屬性 屬性名 值 類方法 classmeth...
python 物件導向及封裝繼承和多型
裝飾器 裝飾器的概念 裝飾器的實現是函式裡面巢狀函式 裝飾器的本質是乙個函式,它可以讓其他函式在不需要做任何 改動的前提下增加額外的功能 裝飾器需要傳遞乙個函式,返回值也是乙個函式物件.物件導向 一 物件導向的基本概念 面向過程和物件導向,是兩種不同的程式設計方式 對比面向過程的特點,可以更好的了解...