我处于接受用户输入的情况,该输入可以是True
或False
或string
。
我知道我可以将输入作为字符串,然后将其解析为boolean
或true
到false
,但是有更好的方法将输入解析为{{1 }}或string
?
boolean
谢谢。
答案 0 :(得分:2)
从技术上讲,您可以轻松地做到这一点。
value = arg == "true" if arg in ("true", "false") else arg
假设您要在任意情况下接受true / false,只会稍微复杂一点:
value = arg.lower() == "true" if arg.lower() in ("true", "false") else arg
这可能两次运行lower()
,因此,如果您担心,可以先缓存该值。尽管在参数解析器中,我还是怀疑。
不过,实际上,我认为您更有可能接受两个不同的论点。像这样混合类型是一个不好的信号,并且使得最终难以获得易于阅读,可调试的代码。