Cython 模块 属性
Cython module property
在 Cython 中,您可以为 class 属性定义 getter 和 setter 函数:
cdef class module
property a:
def __get__(self):
cdef int a
get_a(&a)
return a
def __set__(self, int a):
set_a(&a)
有没有办法在模块级别定义 getters 和 setters?例如,语法可能如下所示。
@module_property
def a():
pass
@a.setter
def a(int new_a):
set_a(&new_a)
@a.getter
def a():
cdef int a_copy
get_a(&a_copy)
return a_copy
正如@Brian 指出的那样,class 的全局实例效果很好。所以它可能看起来像:
cdef class module:
property a:
def __get__(self):
cdef int a_copy
get_a(&a_copy)
return a
def __set__(self, int new_a):
set_a(&new_a)
module_instance = module()
在 Cython 中,您可以为 class 属性定义 getter 和 setter 函数:
cdef class module
property a:
def __get__(self):
cdef int a
get_a(&a)
return a
def __set__(self, int a):
set_a(&a)
有没有办法在模块级别定义 getters 和 setters?例如,语法可能如下所示。
@module_property
def a():
pass
@a.setter
def a(int new_a):
set_a(&new_a)
@a.getter
def a():
cdef int a_copy
get_a(&a_copy)
return a_copy
正如@Brian 指出的那样,class 的全局实例效果很好。所以它可能看起来像:
cdef class module:
property a:
def __get__(self):
cdef int a_copy
get_a(&a_copy)
return a
def __set__(self, int new_a):
set_a(&new_a)
module_instance = module()