Cython:如何在pxd文件中声明默认值

时间:2018-04-14 21:03:42

标签: python-2.7 cython default-value

我有一个函数我想抽象成一个可导入的模块:

cdef list generate_random_vectors(int num_vectors, int length, float scale=1):
    cdef list return_list
    np.random.seed()
    return_list = []
    for n in range(num_vectors):
    return_list.append((1 - 2 * np.random.rand(length)) / scale)
    return return_list

要将其放入模块中,我必须在pxd文件中定义它。

当我尝试这个时:

cdef list generate_random_vectors(int num_vectors, int length, float scale)

我收到错误:函数签名与之前的声明不匹配。

当我尝试这个时:

cdef list generate_random_vectors(int num_vectors, int length, float scale=1)

我收到错误:预期')',找到' INT'

1 个答案:

答案 0 :(得分:1)

找到它。 pxd文件中的语法不同。

我需要使用:

cdef list generate_random_vectors(int num_vectors, int length, float scale=*)