禁用设置python扩展对象的属性
Disable setting an attribute of python extension object
我按照"定义新类型"指南创建了一个Python扩展。
有一点,它说使用PyGetSetDef[]
为新类型的属性定义getters
和setters
。我已经这样做了,但这些getter和setter被忽略了,我不知道为什么。
目前,我有这样的代码:
import new_ext_obj
test = new_ext_obj.init("string") # sets the 'name' attribute of the new object
test.name # returns "string"
test.name = "what" #
test.name # returns "what"
我正在努力使test.name = "what"
不起作用——我不希望这个属性在初始化后可以更改。然而,我的二传手被忽视了,所以我不知道如何做到这一点。有什么想法吗?
事实证明,您需要创建一个setattr
函数,如下所述。
相关文章:
- 类对象属性是否可以调用返回属性应具有的值的方法C++?
- 对象属性同级访问
- 迭代 Napi::对象属性(键)在 Node.js C++ N-API 中
- 是否可以在C++(17)中捕获某些对象属性的破坏性赋值事件
- 分配以下对象属性在哪里
- sutex作为对象属性和对象的向量
- C++ - 在类中包含不是类对象属性的变量是否是一种不好的做法
- 根据对象属性从列表中删除对象
- 将对象属性替换为列表
- 查找对象属性是否位于对象向量C++中
- 未知EABI对象属性44
- 按矢量中的对象属性合并排序
- 如何访问带有静态回调的对象属性
- c++中对象属性的内存分配
- 为什么对象属性的值在 c++ 中将其指针添加到映射后返回零
- 如何检查对象属性更新是否存在 std::map 键,否则插入一个新键?
- 从ASP.NET应用程序查询Active Directory对象属性将返回旧结果
- 性能对象属性与范围变量
- 无法访问对象属性
- 如何从对象方法中访问对象属性