日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python多态的概念_python中的多态

發布時間:2025/3/19 python 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python多态的概念_python中的多态 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

多態性是允許將父對象設置成為和一個或多個它的子對象相等的技術,比如Parent:=Child; 多態性使得能夠利用同一類(基類)類型的指針來引用不同類的對象,以及根據所引用對象的不同,以不同的方式執行相同的操作.

c++中多態更容易理解的概念為

允許父類指針或名稱來引用子類對象,或對象方法,而實際調用的方法為對象的類類型方法。

--------------以上內容來自百度百科----------------

python不支持多態python是一種動態語言,參數在傳入之前是無法確定參數類型的,看下面例子:

[python] view plaincopyclass?A:

def?prt(self):

print "A"

class?B(A):

def?prt(self):

print "B"

class?C(A):

def?prt(self):

print "C"

class?D(A):

pass

class?E:

def?prt(self):

print "E"

class?F:

pass

def?test(arg):

arg.prt()

a?=?A()

b?=?B()

c?=?C()

d?=?D()

e?=?E()

f?=?F()

test(a)

test(b)

test(c)

test(d)

test(e)

test(f)

輸出結果:

A

B

C

A

E

Traceback (most recent call last):

File "/Users/shikefu678/Documents/Aptana Studio 3 Workspace/demo/demo.py", line 33, in

test(a),test(b),test(c),test(d),test(e),test(f)

File "/Users/shikefu678/Documents/Aptana Studio 3 Workspace/demo/demo.py", line 24, in test

arg.prt()

AttributeError: F instance has no attribute 'prt'

乍一看似乎python支持多態,調用test(a),test(b),test(c),test(d)時工作的很好,但是下邊就大不一樣了。調用test(e)時,python只是調用e的prt方法,并沒有判斷e是否為A子類的對象(事實上,定義test方法時也沒有指定參數的類型,python根本無法判斷)。調用test(f)時報錯,原因很很簡單,f沒有prt方法。

總結

以上是生活随笔為你收集整理的python多态的概念_python中的多态的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。