python采用单参数输入,可以是两种不同的类型

时间:2018-09-19 22:33:51

标签: python

我处于接受用户输入的情况,该输入可以是TrueFalsestring

我知道我可以将输入作为字符串,然后将其解析为booleantruefalse,但是有更好的方法将输入解析为{{1 }}或string

boolean

谢谢。

1 个答案:

答案 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(),因此,如果您担心,可以先缓存该值。尽管在参数解析器中,我还是怀疑。

不过,实际上,我认为您更有可能接受两个不同的论点。像这样混合类型是一个不好的信号,并且使得最终难以获得易于阅读,可调试的代码。