2024-10-04 05:25:03 发布
网友
如何向cython类添加静态的、类型化的成员?添加类型化实例成员的语法使用如下语法(例如):
import cython cdef class NoStaticMembers: cdef public int instanceValue # but, how do I create a static member?? def __init__(self, int value): self.instanceValue = value
仅仅因为你能用C来做并不意味着你能用Cython来做。在
解决方法可能涉及使用全局变量和类属性,以便可以通过类实例访问它们。但我不确定它是否真的比使用全局变量好
import cython cdef int MyClass_static_variable cdef class MyClass: property static_variable: def __get__(self): return MyClass_static_variable def __set__(self, x): global MyClass_static_variable MyClass_static_variable = x
你必须测量你通过这种方法损失了多少速度(如果可以的话,可以考虑制作__get__和{}cpdef,我不确定)。真正的静态变量唯一不能做的就是以MyClass.static_variable的形式访问它。在
__get__
cpdef
MyClass.static_variable
仅仅因为你能用C来做并不意味着你能用Cython来做。在
解决方法可能涉及使用全局变量和类属性,以便可以通过类实例访问它们。但我不确定它是否真的比使用全局变量好
你必须测量你通过这种方法损失了多少速度(如果可以的话,可以考虑制作}
__get__
和{cpdef
,我不确定)。真正的静态变量唯一不能做的就是以MyClass.static_variable
的形式访问它。在相关问题 更多 >
编程相关推荐