已关闭此问题为not reproducible or was caused by typos。它目前不接受回答。
此问题是由打印错误或无法再重现的问题引起的。虽然类似的问题可能是on-topic在这里,这一个是解决的方式不太可能帮助未来的读者。
三年前就关门了。
Improve this question
我正在尝试使用Cython将一个python类转换为C以改善时间复杂度。我最常用的变量是在init方法中定义的类变量,因此我想将它们定义为cdef double。我已经尝试了一切我可以找到,但没有让我转换代码.似乎应该这样做:
class Wall(object):
cdef double min_x, max_x, a, b, c
def __init__(self, start, stop):
self.min_x = min(start[0], stop[0])
self.max_x = max(start[0], stop[0])
self.a = (stop[1]-start[1])/(stop[0]-start[0])
self.b = -1
self.c = start[1]-self.a*start[0]
但我得到以下错误:
Error compiling Cython file:
------------------------------------------------------------
...
class Wall(object):
cdef double min_x, max_x, a, b, c
^
------------------------------------------------------------
wall_class_cy.pyx:9:9: cdef statement not allowed here
我做错了什么?
1条答案
按热度按时间ndasle7k1#
你需要将类变量设为公共变量,并为类提供一个C声明。试试这个: