0

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

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)

我对函数的返回值在不同情况下的含义不同这一事实感到不舒服。
围绕这个推荐的约定是什么?
此外,是否有办法将其纳入理解/地图形式 - 尽管返回值很丑陋。

4

1 回答 1

2

当您比较同一类的两个对象时,第一个技巧是实现您自己的__eq__函数。

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

于 2013-05-29T04:08:37.833 回答