Groovy には非常に便利な operator があり?.
ます。これは、オブジェクトがそうでないかどうかをチェックnull
し、そうでない場合は、メソッドまたはプロパティにアクセスします。Pythonで同じことを行うことはできますか?
私が見つけた最も近いものは、三項条件演算子です。今、私はやっています
l = u.find('loc')
l = l.string if l else None
一方、書くのはいいでしょう
l = u.find('loc')?.string
更新:getattr
以下に記載されていることに加えて、リストでそれを行う比較的良い方法を見つけました:
[x.string if x else None for x in [u.find('loc'), u.find('priority'), ...]]
除外する場合の別の方法None
:
[x.string for x in [u.find('loc'), u.find('priority'), ...] if x]