用三個例項說明python類多型和過載。
用三個例項說明python類多型和過載。
#coding:utf-8
"""
本程式碼寫在2013-1-7日下午4:00
先前寫的程式碼有誤,重新寫一個。
由sina微博"python愛好者所寫",提供"python培訓_python從零基礎到網頁採集和web開發培訓"
http://www.qy7788.com.cn/shiyongxinxi/shiyongxinxi161.html
用三個例項說明python類多型和過載。
同一個類中相同函式名,不同引數或引數個數實現過載。
python子類中重寫父類中的方式,就覆蓋了父類的方法。
python也可以實現多型,但過載不支援。
注意覆蓋父類的__init__方法有2種呼叫方式
"""
class MyClass(object):
def __init__(self,name,address,telelphone,text):
"""self.name = "黃老師"
self.address = "北京市海淀區永定路東街乙六號東輕賓館206室"
self.telephone = "010-68165761"
"""
self.name = name
self.address = address
self.telelphone = telelphone
self.text = text
def print_test(self,name):
print self.name
def print_test(self,address):
print self.address
def print_test(self,telelphone):
print self.telelphone
def print_test(self,text):
print self.text
name = "黃老師"
address = "北京市海淀區永定路東街乙六號東輕賓館206室"
telephone = "010-68165761 qq:1465376564"
text = "python培訓_python從零基礎到網頁採集和web開發培訓"
mytest =MyClass(name,address,telephone,text)
mytest.print_test(name)
mytest.print_test(address)
mytest.print_test(telephone)
mytest.print_test(text)
#python實現多型例項一,注意覆蓋父類的__init__方法有2種呼叫方式
class AA(object):
def __init__(self):
pass
def get(self):
d=5
return d
class BB(AA):
def __init__(self):
AA.__init__(self)
def get(self):
d=3
return d
class DD(AA):
def __init__(self):
AA.__init__(self)
def get(self):
d=4
return d
def getNum(cc):
print cc.get()
first = AA()
second = BB()
third = DD()
getNum(first)
getNum(second)
getNum(third)
#python實現多型例項二
class Animal(object):
def __init__(self):
pass
def Eat(self):
pass
class Chicken(Animal):
def __init__(self):
super(Chicken, self).__init__()
def Eat(self):
print 'the chicken has been eat'
class Dog(Animal):
def __init__(self):
super(Dog, self).__init__()
def Eat(self):
print 'the dog has been eat'
#實現一個呼叫的方法,這裡也用類來實現吧
class Person(object):
"""
只需要通過引數來確定呼叫哪個方法。這只是python實現多型的一種.
"""
def __init__(self,name):
self.name = name
def Feed(self, ped):
ped.Eat()
Kobe = Person('Kobe')#給呼叫者取個名字吧
pedChicken = Chicken()#建立一個小雞寵物
pedDog = Dog()#建立一個小狗寵物
Kobe.Feed(pedChicken)#Feed方法根據傳入的引數不同呼叫
Kobe.Feed(pedDog)
#coding:utf-8
"""
本程式碼寫在2013-1-7日下午4:00
先前寫的程式碼有誤,重新寫一個。
由sina微博"python愛好者所寫",提供"python培訓_python從零基礎到網頁採集和web開發培訓"
http://www.qy7788.com.cn/shiyongxinxi/shiyongxinxi161.html
用三個例項說明python類多型和過載。
同一個類中相同函式名,不同引數或引數個數實現過載。
python子類中重寫父類中的方式,就覆蓋了父類的方法。
python也可以實現多型,但過載不支援。
注意覆蓋父類的__init__方法有2種呼叫方式
"""
class MyClass(object):
def __init__(self,name,address,telelphone,text):
"""self.name = "黃老師"
self.address = "北京市海淀區永定路東街乙六號東輕賓館206室"
self.telephone = "010-68165761"
"""
self.name = name
self.address = address
self.telelphone = telelphone
self.text = text
def print_test(self,name):
print self.name
def print_test(self,address):
print self.address
def print_test(self,telelphone):
print self.telelphone
def print_test(self,text):
print self.text
name = "黃老師"
address = "北京市海淀區永定路東街乙六號東輕賓館206室"
telephone = "010-68165761 qq:1465376564"
text = "python培訓_python從零基礎到網頁採集和web開發培訓"
mytest =MyClass(name,address,telephone,text)
mytest.print_test(name)
mytest.print_test(address)
mytest.print_test(telephone)
mytest.print_test(text)
#python實現多型例項一,注意覆蓋父類的__init__方法有2種呼叫方式
class AA(object):
def __init__(self):
pass
def get(self):
d=5
return d
class BB(AA):
def __init__(self):
AA.__init__(self)
def get(self):
d=3
return d
class DD(AA):
def __init__(self):
AA.__init__(self)
def get(self):
d=4
return d
def getNum(cc):
print cc.get()
first = AA()
second = BB()
third = DD()
getNum(first)
getNum(second)
getNum(third)
#python實現多型例項二
class Animal(object):
def __init__(self):
pass
def Eat(self):
pass
class Chicken(Animal):
def __init__(self):
super(Chicken, self).__init__()
def Eat(self):
print 'the chicken has been eat'
class Dog(Animal):
def __init__(self):
super(Dog, self).__init__()
def Eat(self):
print 'the dog has been eat'
#實現一個呼叫的方法,這裡也用類來實現吧
class Person(object):
"""
只需要通過引數來確定呼叫哪個方法。這只是python實現多型的一種.
"""
def __init__(self,name):
self.name = name
def Feed(self, ped):
ped.Eat()
Kobe = Person('Kobe')#給呼叫者取個名字吧
pedChicken = Chicken()#建立一個小雞寵物
pedDog = Dog()#建立一個小狗寵物
Kobe.Feed(pedChicken)#Feed方法根據傳入的引數不同呼叫
Kobe.Feed(pedDog)
相關文章
- python 類和例項Python
- Python中類建立和例項化過程Python
- Python學習:類和例項Python
- 以例項說明 OAuth2OAuth
- 類和例項
- python中類的建立和例項化Python
- [轉載] python複數型別-Python 複數屬性和方法操作例項Python型別
- C++11運算子過載詳解與向量類過載例項(<<,>>,+,-,*等)C++
- 透過video的timeupdate事件檢測影片無法播放例項說明IDE事件
- 說一下泛型原理,並舉例說明泛型
- docker redis 多個例項DockerRedis
- Python 動態新增例項屬性,例項方法,類屬性,類方法Python
- 基礎python5個例項運用Python
- 零基礎學習 Python 之細說類屬性 & 例項Python
- 初學Python過程中,例項方法和類方法的區別是什麼?Python
- Python物件導向多型實現原理及程式碼例項Python物件多型
- python類例項化如何實現Python
- 多型和抽象類多型抽象
- Python中類方法和例項方法有什麼區別?Python
- 在例項中呼叫 Invoke 型別的類型別
- pyhanlp使用者自定義詞典新增例項說明HanLP
- Python類屬性和例項屬性分別是什麼?Python
- Python裝飾器例項講解(三)Python
- Python 類的屬性與例項屬性Python
- Python - 物件導向程式設計 - 類變數、例項變數/類屬性、例項屬性Python物件程式設計變數
- 類的例項化順序和分析
- Java類初始化和例項化Java
- java String類說明Java
- Linux中執行多個MySQL例項LinuxMySql
- Debug和幾個小例項
- [Python 基礎] Python 例項方法、靜態方法和類方法詳解 (包含區別和用法)Python
- 一個例項中,多個synchronized方法的呼叫synchronized
- 用現實生活中例項解釋說明設計模式六大基本原則設計模式
- 學習筆記(抽象基類、上下文管理、多型的應用、節約記憶體的例項)筆記抽象多型記憶體
- 舉例說明這三種方法map、reduce和filter的區別是什麼?Filter
- 舉例說明圖片懶載入的方案有哪些?
- python中encode和decode函式說明Python函式
- 針對 “測試用例最佳實踐” 的說明
- ES API,使用Kibana的開發工具用例說明API