python 多型app python 多型例項

2021-10-11 19:34:53 字數 2039 閱讀 5348

python 多型例項

# coding:utf-8

多型(英語:polymorphism),是指物件導向程式執行時,相同的訊息可能會送給多個不同的類之物件,

而系統可依據物件所屬類,引發對應類的方法,而有不同的行為。

簡單來說,所謂多型意指相同的訊息給予不同的物件會引發不同的動作稱之。

在物件導向程式設計中,多型一般指子型別多型(subtype polymorphism)。

上面的定義有點讓初學者費解,黃哥用「開啟」這個動作來描述物件導向的多型。

"開啟",可以是開啟門,開啟窗戶,開啟書等等。"開啟"這個動作,碰到不同的物件門,窗戶,書,有不同的行為模式。

這個就是多型。

本文由黃哥python培訓,黃哥所寫

# 例1

class door(object):

def open(self):

print "開啟門"

class windows(object):

def open(self):

print "開啟窗戶"

class book(object):

def open(self):

print "開啟書"

lst = [door(), windows(), book()]

for item in lst:

item.open()

# 例2 一般用繼承來說明多型的例子

class animal:

def __init__(self, name):

self.name = name

def talk(self):

raise notimplementederror("subclass must implement abstract method")

class cat(animal):

def talk(self):

return 'meow!'

class dog(animal):

def talk(self):

return 'woof! woof!'

animals = [cat('missy'),

cat('mr. mistoffelees'),

dog('lassie')]

for animal in animals:

print animal.name + ': ' + animal.talk()

# 例3 python 內建有很多多型的應用

# 同樣的 +號 可以用在不同的物件相加,體現(相仿:指相加這個事情)了多型的功能。

print 1 + 2

print "hello" + '黃哥'

# len 函式傳不同的引數,也體現了多型的功能。

print len("黃哥python培訓")

print len([2, 4, 5, 7])

# 工程應用

# 乙個簡單的日誌記錄函式,用判斷實現的,重構為物件導向多型來實現。

#如果有大量的判斷語句,就可以用多型來實現。

def log_msg(log_type):

msg = 'operation successful'

if log_type == 'file':

log_file.write(msg)

elif log_type == 'database':

cursor.execute('insert into log_table (msg) values ('?')', msg)

#重構class filelogger(object):

def log(self, msg):

log_file.write(msg)

class dblogger(object):

def log(self, msg):

cursor.execute('insert into log_table (msg) values ('?')', msg)

def log_msg(obj):

msg = 'operation successful'

obj.log(msg)

python有多型嗎 Python 多型

python多型 思維導圖 多型概念 一種事物具備多種 不同的形態 例如 水 固態 液態 氣態 官方解釋 多個不同類的物件可以響應同乙個方法,產生不同的結果 首先強調多型不是一種特殊的語法,而是一種狀態 特性 即多個不同物件可以響應同乙個方法,產生不同結果 好處 對於使用者而言,大大的降低了使用難度...

python 多型性 Python 多型

返回python教程首頁 多型介紹多型之前,我們先看看什麼叫方法重寫。方法重寫 子類繼承父類,會繼承父類的所有方法,當父類方法無法滿足需求,可在子類中定義乙個同名方法覆蓋父類的方法,這就叫方法重寫。當子類的例項呼叫該方法時,優先呼叫子類自身定義的方法,因為它被重寫了。例如 class people ...

python 多型應用 Python多型原理及實現

對於弱型別的語言來說,變數並沒有宣告型別,因此同乙個變數完全可以在不同的時間引用不同的物件。當同乙個變數在呼叫同乙個方法時,完全可能呈現出多種行為 具體呈現出哪種行為由該變數所引用的物件來決定 這就是所謂的多型 polymorphism 先看下面程式 class bird def move self...