在cython中声明带参数的函数时出错 [关闭]。

问题描述 投票:0回答:1

我正在想办法在c++中使用python函数,我遇到了python,我正在写一个简单的fibonacci函数,它把n个数字从一个特定的索引中加到给定的列表l中。) 请指出哪里出了问题:从libcpp.list cimport listfrom test import test_sum。

cdef public long long gen_fibonacci(list[int] &l,int in,int  n):
    num = 3
    t1 = 0 
    t2 = 1
    nextTerm = 0
    i=1
    if ind==1:
        l.append(0)
        l.append(1)
        i=3
    if ind==2:
        l.append(1)
        i=2
    while i<n:
        nextTerm=t1+t2
        t1=t2
        t2=nextTerm
        if num>=ind:
            i=i+1
            l.append(nextTerm)
        num=num+1
    return test_sum(l) 

错误。

cdef public long long gen_fibonacci(list[int] &l,int in,int  n):
                                                    ^
------------------------------------------------------------

strat_plugin.pyx:4:53: Expected ')', found 'in'

编译命令。

cython -2 strat_plugin.pyx
python c++ function cython
1个回答
0
投票

尝试改变 in 到另一个词的行。

cdef public long long gen_fibonacci(list[int] &l,int in,int  n):` 


0
投票

我认为你把 "in "而不是 "ind "写成了。另外'in'是一个关键词,因此保留。

cdef public long long gen_fibonacci(list[int] &l,int ind,int n): num = 3

© www.soinside.com 2019 - 2024. All rights reserved.