函数返回的良好约定

时间:2013-05-29 04:03:02

标签: python

我有一个对象实例需要与同一个类的实例列表进行比较,以找出具有相同属性的实例。
还提供了用于比较的属性,并在每次调用时动态加载 最后,我需要返回成功的实例(如果有的话),用于比较的属性,或失败实例的列表以及不同的字段(如果没有匹配)。

def func(tomatch,listofprospects):
    attrs = <load dynamically>
    for l in listofprospects:
        failues=list()
        mismatch=match(tomatch,l,attrs)#returns any mismatched fields for this element
        if not mismatch:
            return (l,attrs)
        else:
            filures.extend(dict(l.name(),mismatch))
    return(failures,attrs)

我不满意这样一个事实,即函数的返回值对于不同的情况意味着不同 围绕这个推荐的惯例是什么?
此外,可以有一种方法将其纳入理解/地图形式 - 尽管返回值的丑陋。

1 个答案:

答案 0 :(得分:2)

在比较同一个类的两个对象时,第一个提示是实现自己的__eq__函数。

其次,让比较的结果留给来电者。您的函数应该简单地说明对象是否相等,最好的方法是返回TrueFalse