LinuxSir.cn,穿越时空的Linuxsir!

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

对象展示

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


在 Python 中,有两种方式可以生成对象的文本表示: repr() 函数和 str() 函数。 (print() 函数会直接调用 str()。) 这些处理程序都是可选的。

reprfunc tp_repr;
reprfunc tp_str;
tp_repr 处理程序应该返回一个字符串对象,其中包含调用它的实例的表示形式。 下面是一个简单的例子:

static PyObject *
newdatatype_repr(newdatatypeobject *obj)
{
    return PyUnicode_FromFormat("Repr-ified_newdatatype{{size:%d}}",
                                obj->obj_UnderlyingDatatypePtr->size);
}
如果没有指定 tp_repr 处理句柄,解释器将提供一个使用类型的 tp_name 的表示形式以及对象的唯一标识值。

tp_str 处理句柄对于 str() 就如上述的 tp_repr 处理句柄对于 repr() 一样;也就是说,它会在当 Python 代码在你的对象的某个实例上调用 str() 时被调用。 它的实现与 tp_repr 函数非常相似,但其结果字符串是供人类查看的。 如果未指定 tp_str,则会使用 tp_repr 重句柄来代替。

下面是一个简单的例子:

static PyObject *
newdatatype_str(newdatatypeobject *obj)
{
    return PyUnicode_FromFormat("Stringified_newdatatype{{size:%d}}",
                                obj->obj_UnderlyingDatatypePtr->size);
}
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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