当前位置: 首页 > 面试题库 >

Python:获取PyObject的字符串表示形式?

慕容烨
2023-03-14
问题内容

我有一个C python扩展名,我想打印一些诊断信息。

我收到一个字符串作为PyObject *。

获取此对象的字符串表示形式(使其可用作const char *)的规范方法是什么?

更新: 澄清以强调访问为const char *。


问题答案:

使用PyObject_Repr(模仿Python的repr函数)或PyObject_Str(模仿str),然后调用PyString_AsStringget
char *(您可以并且通常应该将其用作const char*,例如:

PyObject* objectsRepresentation = PyObject_Repr(yourObject);
const char* s = PyString_AsString(objectsRepresentation);

任何人都可以使用此方法PyObject。如果您完全确定yourObject是Python字符串而不是其他字符串(例如数字),则可以跳过第一行,然后执行以下操作:

const char* s = PyString_AsString(yourObject);


 类似资料:
  • 问题内容: 假设我定义了以下类型: 我将如何以编程方式将类型作为字符串获取,因此以后可能很容易重构,而不是: 我不太喜欢,因为它实例化了它,也可以从Interface实例化。 问题答案: 您可以使用包装(包装也可以在内部使用)。您可以从 指向 该类型的 指针 开始,并使用没有分配的 类型化_指针值,并且可以使用来从其描述符导航到指针的 _基本 类型(或 元素 类型)的描述符。 例: 输出(在Go

  • 问题内容: 假设我有一个这样的类(并进一步假设所有私有变量: 现在,如果要构建此类的toString()表示形式,则可以在Item类中执行以下操作: 但是,如果我在类中说了15个私有变量,该怎么办?我是否需要像这样写出每个变量的名称? 理想情况下,我想遍历该类的私有变量列表并构造字符串表示形式来结束任务: 也许是toJSON方法,我仍然需要访问这些变量的名称。有什么建议? 问题答案: 您可以这样做

  • 问题内容: 对于我的应用程序,字符串是否为人类可读的都没有关系。 问题答案: 将结构编码为字符串的一种流行方法是使用JSON。 您有某些限制,例如无法获取所有信息(例如,每个字段的特定类型),仅序列化导出的字段以及不处理递归值。但这是序列化数据的简单标准方法。 工作示例: 给出以下输出: https://play.golang.org/p/sx-xdSxAOG

  • 本文向大家介绍JavaScript 数字的字符串表示形式,包括了JavaScript 数字的字符串表示形式的使用技巧和注意事项,需要的朋友参考一下 示例 JavaScript具有从Number到String表示形式的本地转换,从2到36的任何基数。 十进制(以10为底)之后最常见的表示形式是十六进制(以16为底),但本节的内容适用于范围内的所有底。 为了将数字从十进制(以10为底)转换为十六进制(

  • 问题内容: 在Java中,我可以覆盖类的方法。然后,Java的print函数将打印由其定义的对象的字符串表示形式。是否有与Java等效的Python ? 例如,我有一个PlayCard类。我有一个PlayCard实例c。现在: 但是我想要的是这样的: 如何自定义类实例的字符串表示形式? 我正在使用Python 3.x 问题答案: 与Java最接近的等效项是为您的类实现。将其放在您的类定义中: 您可

  • SearchRepository调用Mapper中的searchTmp方法,而Mapper从MyBatis XML文件调用并执行searchTmp方法。 在完美的世界中,我希望将searchTmp方法的void返回类型更改为字符串,并强制MyBatis将执行的SQL作为字符串返回。我有可能明白吗?