编写一个返回dict或OrderedDict的函数会是pythonic吗?

时间:2017-12-29 00:02:10

标签: python dictionary

我怀疑常规字典和OrderedDict对象是否真正可以互换,因为相同的函数或方法可以在dict时返回,有时根据输入参数返回OrderedDict,或者例如在类的情况下方法取决于其他一些内部类实例属性。如果返回一个OrderedDict会比返回一个普通的dict要昂贵得多,那么为什么这么做呢?创建这样的函数或者menthod是pythonic吗?我使用Python 2.7。

我已经看过"为什么函数总是返回相同的类型?"我觉得我的情况对于未经干预的眼睛来说更特别而且更不明显。

1 个答案:

答案 0 :(得分:0)

Python使用duck typing。只要对象呈现动作所需的必要接口,对象的类型就无关紧要了。 OrderedDict将显示dict所有的接口,因此函数返回的内容无关紧要。它取决于返回的任何用途。你应该弄清楚使用的实现而不是返回函数。

你的用例是什么?详细说明有助于提出答案或替代方案。