【发布时间】:2020-12-26 01:54:57
【问题描述】:
在 Python 中,可以使用星号表达式来解包变量:
def unpack(*args):
return args
我知道这里的*args 可以是一个元组,例如args = (arg1, arg2, arg3)。除了**kwargs 的字典,*arg 还支持哪些其他数据结构? “幕后”会发生什么,例如如果我这样做:
args = numpy.asarray([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
unpack(args)
【问题讨论】:
-
asarray()是一个函数,您正在尝试对其进行索引。unpack是什么?你甚至没有检查你的代码是否运行! -
回答你的问题:
args是一个元组,包含作为位置参数传递给函数的任何内容。 -
*的参数必须是Iterable,**的参数必须是Mapping。有关此抽象基类的一些详细信息,请参阅docs.python.org/3/library/collections.abc.html。
标签: python arrays parameters arguments parameter-passing