我见过用这种方式定义属性的代码
property sockets:
def __get__(self):
cdef list sockets = []
与装饰器声明它有什么区别吗?
答案 0 :(得分:2)
__get__
等定义属性函数的方法是遗留语法,并且不赞成使用@property
装饰器 - per docs:
还有一种特殊的(已弃用的)旧语法,用于定义扩展类中的属性:
cdef class Spam:
property cheese:
Cython生成的代码在功能上是等效的,可以通过检查C文件看到,但语法是遗留的,不推荐使用,可能会在将来的Cython版本中删除。