2017-06-28 25 views
-1

我正在參加有關python的考試,其中一個列出的問題是OOP: 「您能否將來自不同班級的對象存儲在一個列表中,爲什麼?」 所以你可以這樣做,但是有沒有特定的目的來做到這一點?爲什麼Python允許在列表中存儲不同的對象?

+0

該問題可能被解釋爲「命名爲什麼可能」。 – bakatrouble

+0

多態行爲?基於策略的設計(例如:該列表中的所有類都有某些方法)? – UnholySheep

+1

您是否願意將所有'形狀'存儲在同一個列表中,或者爲'Circle','Triangle'和'Square'單獨列出一個列表? – DeepSpace

回答

0

有沒有特定的目的來做到這一點?

Python是一種duck typed語言,因此,儘管對象可能是不同類型的,他們仍然可以表現相似。

一個常見的例子是回調函數列表;你真的不知道他們是否是功能,或實現__call__方法一些自定義的類的實例:

my_event_callbacks = [] 
my_event_callbacks.append(my_callback) 
... 
for callback in my_event_callbacks: 
    callback(my_event_data) 

你看不出來,你也不應該關心,my_callback是否僅僅是一個簡單的函數或一個可調用的實例。

相關問題