【发布时间】:2019-03-21 08:53:14
【问题描述】:
对于应该使用 * 运算符解包的对象的正确类型注释是什么,即此(随机)示例中的 foo:
def some_function(foo):
... = bar(*foo)
我知道* 可以解包元组和列表,但它是否仅限于这两个类,或者它是否有任何类型的接口可以使其可用于其他集合?
【问题讨论】:
-
typing.Iterable够吗? -
不,这意味着即使是字符串也是不可打包的,但这会引发 SyntaxError。
-
字符串是不可打包的。
-
@gmolau:字符串是不可打包的,所有可迭代的都是不可打包的(如果可迭代永远不会结束,它当然会导致内存错误)。
-
字符串是如何工作的?我试过
*'foo'。