class animal:# 所用的知識 animal類的封裝 -> dog類,cat類,person類的繼承->多型
# 把所有的共同屬性和方法封裝在乙個公有類裡面讓子類繼承父類的方法來實現和資料
# 在建立乙個小狗例項的時候,給它設定幾個屬性
def __init__(self, name, age=1):
self.name = name
self.age = age
def eat(self):
# print("名字是%s,年齡%d歲的小狗在吃飯"%(self.name,self.age))
print("%s吃飯" % self)
return self
def play(self):
print("%s玩" % self)
return self
def sleep(self):
print("%s睡覺" % self)
return self
class dog(animal):
def work(self):
print("%s看家"%self)
def __str__(self):
# self物件本身對字串的乙個描述
return "名字是{},年齡{}歲的小狗在".format(self.name, self.age)
class cat(animal):
def work(self):
print("%s捉老鼠"%self)
def __str__(self):
# self物件本身對字串的乙個描述
return "名字是{},年齡{}歲的小貓在".format(self.name, self.age)
class person(animal):
def __init__(self, name, pets, age=1):
super(person,self).__init__(name,age)
self.pets = pets
def feed_pets(self):
# 所用的知識就是多型,養寵物,和讓寵物工作也都是多型
for pet in self.pets:
pet.eat()
pet.sleep()
pet.play()
def make_pets_work(self):
for pet in self.pets:
pet.work()
def __str__(self):
# self物件本身對字串的乙個描述
return "名字是{},年齡{}歲的人在".format(self.name, self.age)
# d = dog("小黑",18)
# c = cat("小紅",2)
# p = person("brucelong", [d, c], 24 )
# print(p.__dict__)
d = dog("小黑",18)# selr中誰呼叫就是誰 此處d 會去animal中找到self和裡的的屬性和方法而animal裡的self就是dog類
c = cat("小紅",2)
p = person("brucelong", [d, c], 24 )
p.feed_pets()
p.make_pets_work()
python物件導向三大特性
定義 封裝一些資料和方法,只給外界提供必要的功能,掩蓋細節,提高 復用性和系統安全性。資料角度 用乙個類包裝多個變數,還可以定義方法,運算元據 行為角度 不同程式設計師開發乙個專案的不同功能,在使用時,直接呼叫,不需要思考其內部實現 設計角度 1 分而治之 拿到需求之後,分析需求,將需求拆解為不同的...
Python 物件導向三大特性 封裝
封裝,顧名思義就是將內容封裝到某個地方,以後再去呼叫被封裝在某處的內容。封裝重點 1.def init self 構造方法 雖然它是函式形式,但在類中就不叫函式了 叫方法 2.value 私有 隱藏 屬性,只能在類中被呼叫。3.def func self 私有 隱藏 方法,只能在類中被呼叫。示例1 ...
python 物件導向三大特性 繼承
一 什麼是繼承 繼承是一種建立新類的方式,在python中,新建的類可以繼承乙個或者多個父類,父類又可以稱為基類活超類,新建的類稱為派生類或子類。簡單來說就是 子類可以繼承父類的方法和屬性。python中類的繼承分為 單繼承和多繼承 class parentclass1 定義父類 pass clas...