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

同じクラスの 2 つのオブジェクトを比較しているので、最初のヒントは独自の__eq__関数を実装することです。

次に、比較の結果を呼び出し元に任せます。関数は単にオブジェクトが等しいかどうかを示す必要があり、それを行う最善の方法はTrueorを返すことですFalse

于 2013-05-29T04:08:37.833 に答える