我正在尝试通过Cython公开一些C 类。我在这里阅读的教程似乎表明它确实可以,但是当我使用@propery
装饰器时,它不起作用。
好吧,实际上,它确实有用,但是@foo.setter
因TypeError: 'property' object is not callable
而失败。
根据此线程,Cython不完全支持@property
。
我能够使用此处描述的语法来公开类属性,但他们说它已弃用!
那有什么交易?!
好吧,这是交易。
一天结束时,我正在使用过时的Cython版本。具体来说,我使用的是0.23.4。当我更新为0.25.2 @property
语法"刚刚工作"。
但是,关于这一点的Cython文档是不好的,因为它在文档的两个不同部分中讨论了属性,并且只有一个在一个不同的部分中谈论了"新" @property
语法。在另一个位置,它只是说(非@property
)语法已弃用。
在我的问题中,我指的是在这里不提及@property
的官方文档。请注意,这是在"参考指南"中。
如果您在这里查看,则可以找到新的@property
语法。请注意,这是"用户指南"。
我不知道为什么Cython文档有参考指南和用户指南,该指南讨论了同一主题,但人们遗漏了重要信息。此答案在这里帮助下一个任性的Cython Newbie试图解决这个问题。