numpy.array(object, dtype=None, *, copy=True, order='K', subok=False, ndmin=0, like=None)



在NumPy手册中,有一些对象的参数为通配符,如本问题的标题所示。

首先,我不知道在这种情况下它意味着什么。

第二,当试图重新定义函数时:

def array(object, dtype=None, *, copy=True, order='K', subok=False, ndmin=0, like=None):
if MODE == 'CPU':
return np.array(object, dtype, *, copy, order, subok, ndmin, like)
print (array([1,2,3]))

我得到错误:

File "test.py", line 18
return np.array(object, dtype, *, copy, order, subok, ndmin, like)
^
SyntaxError: invalid syntax

虽然我知道*args**kwargs是什么意思,但我不知道*是什么意思。在谷歌上搜索并不能得到令人满意的结果。如有任何解释,不胜感激。

问题是在调用中,*之后的所有值都必须使用参数名称。

示例,由于第三个参数未提供参数名称而导致错误:

def f(a=1,b=2,*,c=3):
print(a)
print(b)
print(c)
f(1,2,3)

没有错误的示例:

def f(a=1,b=2,*,c=3):
print(a)
print(b)
print(c)
f(1,2,c=3)

这里有类似的主题。

*后面的所有参数都是仅限关键字的参数。必须将它们指定为关键字,而不是按位置指定。指定位置参数的*函数不会被解释为后面的任何关键字参数,例如在这种情况下的copy或order,如果您试图指定比*前面更多的位置参数,则会引发错误。有关更多信息,请参阅本PEP文件,特别是规范部分中的示例

最新更新