多分私は遅すぎるだけです。
辞書の薄いラッパーであるオブジェクトがあります。ディクショナリ内の任意のキーのプロパティを持っているふりをし、存在しないキーが参照されている場合は None を返します。
3 つの可能なキーについて、一意の「真実の」値のみを取得したいと考えています。(なしではない)。オブジェクトは 1 つ以上のキーを持っていない可能性があります。または、2 つまたは 3 つのキーで同じ値を持つ場合もあります。
このコードは私が望むことを行います:
set(getattr(obj, field) for field in ['field1', 'field2', 'field3'] if getattr(obj, field))
getattr() を2回繰り返す見た目が気に入らないだけです。これを行うための明らかにより良い方法を見落としているように感じます。