Dav*_*d R 3 default-value cython python-2.7
我有一个想要抽象为可导入模块的函数:
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
Run Code Online (Sandbox Code Playgroud)
要将其放入模块中,我必须在 pxd 文件中定义它。
当我尝试这个时:
cdef list generate_random_vectors(int num_vectors, int length, float scale)
Run Code Online (Sandbox Code Playgroud)
我收到错误:函数签名与先前的声明不匹配。
当我尝试这个时:
cdef list generate_random_vectors(int num_vectors, int length, float scale=1)
Run Code Online (Sandbox Code Playgroud)
我收到错误:预期为“)”,发现为“INT”
找到了。pxd 文件中的语法有所不同。
我需要使用:
cdef list generate_random_vectors(int num_vectors, int length, float scale=*)
Run Code Online (Sandbox Code Playgroud)