【发布时间】:2015-11-04 14:57:20
【问题描述】:
如果要解包的值的数量与变量列表相比太少,有没有办法设置默认值?
例如:
a, b, c = read_json(request)
如果read_json 返回一个包含三个或更多变量的数组,则此方法有效。如果它只返回两个,我在分配c 时会遇到异常。那么,如果无法正确解包,有没有办法将c 设置为默认值?比如:
a, b, (c=2) = read_json(request)
这与定义带有默认参数的函数时所做的类似。
谢谢!
【问题讨论】:
-
read_json()是你自己的函数吗?如果是这样,你为什么不能确保它总是返回 3 个值? -
不,没有;你需要确保你得到三个值,或者在赋值的右侧填充和切片。
-
您可以使用
*解包,例如a, b, *c = read_json(request),其中仅解压缩两个值会导致c为空list,但如果您确实需要特定值,最好让函数return更严格一些。 -
@TigerhawkT3 且仅在 Python 3.x 中
-
@jonrsharpe - 当然在 Python 3 中……每个人都使用 Python 3……对吗?请? :P
标签: python arrays exception unpack