python – 子类化C模块中定义的类型时忽略的方法
发布时间:2020-12-16 22:49:35 所属栏目:Python 来源:网络整理
导读:我正在将C模块中定义的类型子类化为别名的一些属性和方法,以便我的脚本在不同的上下文中工作. 如何让它工作,我必须手动调整我班级的字典?如果我没有在dictionnary中添加对DistanceTo的引用,我得到Point3d没有名为DistanceTo的属性. class Point3d(App.Base.
我正在将C模块中定义的类型子类化为别名的一些属性和方法,以便我的脚本在不同的上下文中工作. 如何让它工作,我必须手动调整我班级的字典?如果我没有在dictionnary中添加对DistanceTo的引用,我得到Point3d没有名为DistanceTo的属性.
我在想,一旦__new__返回了一个实例,我仍然可以使用方法和属性来填充它.任何人都可以对此有所了解吗? 编辑:我导入的模块是FreeCAD. C基类型定义为there.然后,从此定义here导出Vector 编辑2:我也尝试了以下内容:
并且在创建第二个点之后,无论在创建实例时传递了什么x,z参数,Point3d p都返回p.X,p.Y和p.Z的最后一个点的值. p.x,p.y,p.z返回预期值.它似乎表明字典是在实例之间共享的. 编辑3:问题解决了! Py_TPFLAGS_BASETYPE位设置为零以防止子类化,如下面的答案中所述. 最佳答案
我不明白为什么要动态添加属性.只需使用:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |