我的部分代码依赖于两个项目之间的比较,最终可能会与不存在的变量进行比较。因此,我将通过并为集合添加填充变量值,以确保它们都已定义并且可以进行比较。
但是,如果我添加填充值,我不希望它可以与任何其他值匹配。我使用None,但是其他值也可能是None。我想知道的是,是否有一种很好的方法可以确保填充值不匹配?已定义的值可以是任何值(因为它们是用户定义的)。
此外,我愿意接受有关解决此问题的其他方法的建议。
答案 0 :(得分:8)
简单地说:
missing = object()
然后在比较中使用missing
(它不会与任何其他对象进行比较,包括None
)。
答案 1 :(得分:3)
似乎您可以定义要比较的自定义类。例如:
class NoValue:
pass
if someValue is NoValue:
doSomething()
比较应始终失败,因为someValue不会成为NoValue的实例
答案 2 :(得分:1)
我多次使用Ellipsis
代替None
来表示“默认值”左右......
无论如何,我不确定我完全理解你的问题:
dict
S'KeyError
例外,或使用.get()
..?