我正在尝试通过cython公开一些C ++类。我正在阅读教程here,它似乎表明了它的确如此,但是当我使用@propery
装饰器时,它无法正常工作。
嗯,实际上,它确实适用于获取,但@foo.setter
因TypeError: 'property' object is not callable
而失败。
根据this thread,cython并不完全支持@property
。
我能够使用here描述的语法公开类属性,但他们说它已被弃用了!
那么这笔交易是什么?!
答案 0 :(得分:0)
好的,这是合约。
在一天结束时,我使用的是过时的cython版本。具体来说,我使用的是0.23.4。当我更新到0.25.2 @property
语法“刚刚工作”。
但是,关于这一点的cython文档很糟糕,因为它在文档的两个不同部分讨论属性,而且只在一个文档中讨论了“新”@property
语法。在另一个位置,它只是说不推荐使用(非@property
)语法。
在我的问题中,我指的是未提及@property
here的官方(和当前)文档。请注意,这是在“参考指南”中。
如果您改为查看here,则会找到新的@property
语法。请注意,这是“用户指南”。
我不知道为什么cython文档有参考指南和讨论相同主题的用户指南,但一个遗漏了重要信息。这个答案在这里帮助下一个任性的cython新手试图解决这个问题。