Summary
現在 hoge: NotRequired[str | None] の様な型の属性があり、キーが存在しない場合 .get("hoge") と書くことでキーが存在しない場合でも None を返している。しかしながらこれではキーが存在しないのか、キーは存在するものの値が存在しないのか判断ができない。
それを今度は str | None | Missing といった形にすることで明確に判断できるようにする。
問題点としては以下が挙げられる
- bool(属性)した場合Falseが入ってしまう
- わざわざboolで囲うという条件はあるものの、意図せず条件式が動いてしまいデバッグ時に原因の特定が困難になることがあるかもしれない
解決策としてはMissingの __bool__ を持たないようなクラスを用意する
Summary
現在
hoge: NotRequired[str | None]の様な型の属性があり、キーが存在しない場合.get("hoge")と書くことでキーが存在しない場合でもNoneを返している。しかしながらこれではキーが存在しないのか、キーは存在するものの値が存在しないのか判断ができない。それを今度は
str | None | Missingといった形にすることで明確に判断できるようにする。問題点としては以下が挙げられる
解決策としてはMissingの
__bool__を持たないようなクラスを用意する