Cython支持@property语法



我正在尝试通过Cython公开一些C 类。我在这里阅读的教程似乎表明它确实可以,但是当我使用@propery装饰器时,它不起作用。

好吧,实际上,它确实有用,但是@foo.setterTypeError: 'property' object is not callable而失败。

根据此线程,Cython不完全支持@property

我能够使用此处描述的语法来公开类属性,但他们说它已弃用!

那有什么交易?!

好吧,这是交易。

一天结束时,我正在使用过时的Cython版本。具体来说,我使用的是0.23.4。当我更新为0.25.2 @property语法"刚刚工作"。

但是,关于这一点的Cython文档是不好的,因为它在文档的两个不同部分中讨论了属性,并且只有一个在一个不同的部分中谈论了"新" @property语法。在另一个位置,它只是说(非@property)语法已弃用。

在我的问题中,我指的是在这里不提及@property的官方文档。请注意,这是在"参考指南"中。

如果您在这里查看,则可以找到新的@property语法。请注意,这是"用户指南"。

我不知道为什么Cython文档有参考指南和用户指南,该指南讨论了同一主题,但人们遗漏了重要信息。此答案在这里帮助下一个任性的Cython Newbie试图解决这个问题。

最新更新