Cython扩展类型属性误解

2024-05-06 13:44:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试为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设为可访问和/或可写。您不需要属性:

^{pr2}$

但当我使用第二个选项时,它不起作用。变量永远不会更新。有什么我遗漏了还是我没有完全理解?在

感谢您的输入。在


Tags: to文档self权限类型成员propertiescython
1条回答
网友
1楼 · 发布于 2024-05-06 13:44:36

您已经找到了解决方案,使用property是一种方法。在

public属性可以在类方法之外访问,而private属性只能由类方法使用。在

但是,在C++级别定义的^ {< CD2>}属性不能从Python访问。使用property公开privatepublic属性将使其对Python可用。在

相关问题 更多 >