为什么Python允许在列表中存储不同的对象?

时间:2017-06-28 11:44:49

标签: python oop

我正在参加有关python的考试,其中一个列出的OOP问题是: “你可以将来自不同类的对象存储在一个列表中吗?为什么?” 所以你可以这样做,但是有什么特别的目的吗?

1 个答案:

答案 0 :(得分: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是一个简单的函数还是一个可调用的实例。