我正在尝试为cython类中的成员授予python访问权限。成员类型是基本类型(例如int
或{
我在文档中读到,可以使用properties来访问底层C++成员:
cdef class myPythonClass:
# grant access to myCppMember thanks to myMember
property myMember:
def __get__(self):
return self.thisptr.myCppMember # implicit conversion
# would somehow be the same logic for __set__ method
现在这是有效的。在
但是据我所知,对于基本类型,您可以使用extension types。在本例中,将成员public
设为可访问和/或可写。您不需要属性:
但当我使用第二个选项时,它不起作用。变量永远不会更新。有什么我遗漏了还是我没有完全理解?在
感谢您的输入。在
您已经找到了解决方案,使用
property
是一种方法。在public
属性可以在类方法之外访问,而private
属性只能由类方法使用。在但是,在C++级别定义的^ {< CD2>}属性不能从Python访问。使用
property
公开private
或public
属性将使其对Python可用。在相关问题 更多 >
编程相关推荐