Pythonand
とor
演算子は、True
またはFalse
ではなく値を返します。これは、次のような場合に役立ちます。
x = d.get(1) or d.get(2) or d.get(3)
どちらがx
の値になるかd[1]
、d[2]
またはd[3]
どちらが存在するか。これは、関数型言語で多分モナドを追加するのと少し似ています。
私はいつも、Pythonany()
関数が繰り返しのようになることを望んでいましたor
。次のように、見つかったオブジェクトを返すのは理にかなっていると思います。
any([None, None, 1, 2, None]) == 1
any(notnull_iterator) = try: return next(notnull_iterator); except: return None
そして同様にall()
。この変更は完全に下位互換性があり、API全体の一貫性が向上するように思われます。
誰かがこのトピックの以前の議論を知っていますか?
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加