gpt4 book ai didi

python - Cython/python - cdef 类列表

转载 作者:太空宇宙 更新时间:2023-11-03 18:11:58 27 4
gpt4 key购买 nike

我正在尝试改进此使用列表类型的代码:

# CLASS ORDERC #
################
cdef class OrderC:
cdef int _side
cdef float _px
cdef int _vo

def __cinit__(self, int side, float px, int vo):
# ....

cdef setData(self, double[:] dates):
# ....

# CLASS LISTORDERC #
####################
cdef class ListOrderC:
cdef int _B
cdef list _LO_Bid

cdef double[:] _dates

def __init__(self, num.ndarray[num.double_t, ndim=1] dates):
self._B = 0
self._LO_Bid = []
self._dates = dates

cpdef addOrder(self, OrderC oo):
self._B += 1
self._LO_Bid.append(oo)
self._LO_Bid[-1].setData(self._dates)

当我从 python 调用 addOrder 时出现问题:

 AttributeError: 'OrderC.OrderC' object has no attribute 'setData'

我猜这是因为OrderC被识别为python对象,所以我必须用cpdef定义setData。但我希望 OrderC 被识别为 cdef 类以提高性能。

你能帮我一下吗?

谢谢

最佳答案

问题是 list 仅保存 object 类型的内容,因此当您访问时,您会返回一个 object

您可能想改用 C++ 向量

关于python - Cython/python - cdef 类列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25765722/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com