首页 > 解决方案 > 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意思,但我不知道什么*意思。用谷歌搜索这个并不能得到令人满意的结果。任何解释将不胜感激。

标签: pythonnumpy

解决方案


事情是在调用 * 之后的所有值都必须带有参数的名称。

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

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)

这是类似的话题


推荐阅读