我想使用如下条件表达式:
young_animal = 'puppy' if animal == 'dog' else ('kitten' if animal == 'cat' else (assert False))
也就是说,我只希望animal
是dog
或cat
,但是我想在我的代码中声明它。
这是无效的python,因为assert
是语句,而不是表达式。同样,raise
也是一个语句。最好的方法是什么?我当然可以做以下事情:
assert animal in ['dog', 'cat']
young_animal = 'puppy' if animal == 'dog' else 'kitten'
但这似乎既没有习惯用法,也没有那么安全(例如,行可能在重构中分开)。