LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 296|回复: 0

属性管理

[复制链接]
发表于 2024-1-19 18:50:32 | 显示全部楼层 |阅读模式


对于每个可支持属性操作的对象,相应的类型必须提供用于控制属性获取方式的函数。 需要有一个能够检索属性的函数(如果定义了任何属性)还要有另一个函数负责设置属性(如果允许设置属性)。 移除属性是一种特殊情况,在此情况下要传给处理句柄的新值为 NULL。

Python 支持两对属性处理句柄;一个支持属性操作的类型只需要实现其中一对的函数。 两者的差别在于一对接受 char* 作为属性名称,而另一对则接受 PyObject*。 每种类型都可以选择使用对于实现的便利性来说更有意义的那一对。

getattrfunc  tp_getattr;        /* char * version */
setattrfunc  tp_setattr;
/* ... */
getattrofunc tp_getattro;       /* PyObject * version */
setattrofunc tp_setattro;
如果访问一个对象的属性总是为简单操作(这将在下文进行解释),则有一些泛用实现可被用来提供 PyObject* 版本的属性管理函数。 从 Python 2.2 开始对于类型专属的属性处理句柄的实际需要几乎已完全消失,尽管还存在着许多尚未理新为使用某种新的可选泛用机制的例子。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表